isset неправильно работает, либо у меня руки кривые

Popryigun

Новичок
isset неправильно работает, либо у меня руки кривые

Сам в программировании новичок, т.к. над кодом сильно не смейтесь.
Вот посмотрите на код (Описание проблемы за кодом) :

PHP:
if (isset($_GET['$id_doc']))         // Если мы редактируем документ ( $_GET['$id_doc'] должен существовать )    
{       
       $select_page_query = mysql_query("SELECT * FROM pages WHERE id = ".$_GET['id_doc']."");
       $select_page_num_rows = mysql_num_rows($select_page_query);         
// Проверяем, что результат из таблицы (т.е. страница) соответствует одному ID
       if ($select_page_num_rows <= 0 || $select_page_num_rows > 1)          
        {             
         echo "На сайте возникли неполадки.<br>\nОбратитесь к администратору";
         exit ("");          
        }         
echo "xXx<br>";          
    while ($page_data = mysql_fetch_array($select_page_query, MYSQL_ASSOC))
          {          
           ...           
          }    
echo $page_title.$page_create_date;    
}     
else  
   exit("Какая-то хрень");
Запрашиваем страницу:
http://www.xxx.ru/page.php?id_doc=1
По идее должен срабатывать блок if, т.к. $_GET['id_doc'] существует, но мне выводится "Какая-то хрень", т.е. блок if не срабатывает. Почему?
 

WP

^_^
> mysql_query("SELECT * FROM pages WHERE id = ".$_GET['id_doc']."");
Порадовало. Что такое SQL-инъекция ты конечно не знаешь?
 

STALK3R

Новичок
действительно радует)
ты бы хоть написал там....
типа $id_doc = preg_replace("/[^\d]/", "", $_GET['id_doc']);
а потом уже думать, что не работает... товарищ.
 

phprus

Moderator
Команда форума
STALK3R
Зачем так изврашаться? Чем [m]intval[/m] не подходит?
 

Popryigun

Новичок
Я знаю что у меня в написанном коде нет проврки на SQL-инъекцию... Проблема не в этом.
Мне что, нужно сюда было весь код скрипта выкладывать? И зачем?
SiMM
>>$ _GET['id_doc']
Да, $_GET['id_doc'] существует. Проверял: echo $_GET['id_doc']; - выводит значение, полученное get'ом...
phprus
>>...Чем intval не подходит?
А разве он не медленне выполняется? И, по-моему, это не принятая конструкция...

З.Ы. Причём в другом скрипте используется аналогичная конструкиция и всё работает!
 

AndreyKl

Новичок
SiMM всё верно написал:

> $_GET['id_doc'] существует
А $_GET['$id_doc']?

смотри на $ в кавычках. Похоже, причина в этом, если ты его не специально туда написал конечно...
 

phprus

Moderator
Команда форума
Popryigun
У тебя в скрипте вместо $_GET['id_doc'] проверяется переменная $_GET['$id_doc'] разницу видиш?

0xHH
И в чем собственно проблема? 0x1A - это нормальное число в 16-ричной системе счисления. Ты имееш что-то против 16-ричной системы счисления?
 

AndreyKl

Новичок
Автор оригинала: Popryigun
Я знаю что у меня в написанном коде нет проврки на SQL-инъекцию... Проблема не в этом.
Мне что, нужно сюда было весь код скрипта выкладывать? И зачем?
SiMM
>>$ _GET['id_doc']
Да, $_GET['id_doc'] существует. Проверял: - выводит значение, полученное get'ом...
echo $_GET['id_doc']; !== echo $_GET['$id_doc'];
 

Popryigun

Новичок
Уппссс...
Всем спасибо... Пойду тренировать глаза... :)

З.Ы. Тему можно закрывать и удалать...
З.Ы.2. Почему PHP не вывел сообщение о ошибке? У меня же стоит error_reporting(E_ALL);
 

Crazy

Developer
Автор оригинала: Popryigun
Об этой: $_GET['$id_doc']
Или это правильная конструкция языка?
А что, язык запрещает использовать знак доллара внутри строк? :)

Лично ты какого сообщения ждал? "Wrong DNA fragment. Replace and strike any key" ? :)
 
Сверху