Forum Webscript.Ru
Программирование => PHP => Тема начата: MushrooM от 10 Сентября 2002, 16:15:46
-
Короче тема такая:
Когда посылаешь - /inform/news/index.php?link=lentap
И принимаешь например - print $link
То все нормально.
А если просто посылаешь - /inform/news/index.php
То когда принимает пишет на строчку где print $link
[error] Undefined variable.
Как это побороть. please help . . .
-
В php.ini поставь error_reporting = E_ALL & ~E_NOTICE, либо через error_reporting() (http://www.php.net/error_reporting)
-
или в начале скрипта пиши
if (!isset($list)) var $list;
именно к этому нас за уши тянут создатели РНР, превращая его из инструмента быстрой и удобной разработки веб-сайтов в нечто громоздкое и никому не нужное.
-
вообще-то это подсказка тебе, о том, что ты забыл определить переменную, а "хакеры", блин, не дремлют :)
важное правило. ты _всегда_ должен знать что у тебя в переменной... пустота, хрен знает что или осмысленные данные.
-
RomikChef
var?? Не слышал я о таком определении переменной в PHP, хотя это и вполне логично с точки зрения, скажем, JavaScript. Я, вообще говоря, переменые объявляю присвоением некоторого значения, то есть в данном случае сделал бы, скажем, так:
if (!isset($list))
$list="";
Только не совсем понятно, зачем это делать. Все зависит от того, как эта переменная в дальнейшем используется, если она иногда используется, а иногда - нет, то логичнее сделать так:
if (isset($list))
print $list;
Кстати, не вижу ничего плохого в том, что создатели PHP тянут нас за уши от попыток заставить интерпретатор отобразить неустановленную переменную.
-
Antoxa
Согласен, не сообщения об ошибках надо бороть, а сами ошибки, а именно логику обработки переменных.
А насчет хакеров - чем реально грозит неопределенная текстовая переменная?
-
тем что ее определит кто-нибудь другой :)
при register_globals on это вполне вероятно
-
При передаче методом GET (index.php?link=lentap) от этого в любом случае никто не застрахован.
-
а unset нам на что? :)
хотя я обычно просто пишу
@$var = (int)$_REQUEST[\'var\']; и радуюсь жизни... ну иногда еще навешиваю что-нибудь вроде
@$var = max(0, (int)$_REQUEST[\'var\']); если надо только положительными ограничить...
-
При передаче методом GET
И не только GET