Forum Webscript.Ru

Программирование => PHP => Тема начата: MushrooM от 10 Сентября 2002, 16:15:46

Название: Помогите искоренить [error] Undefined variable
Отправлено: 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 . . .
Название: Помогите искоренить [error] Undefined variable
Отправлено: GotZfild от 10 Сентября 2002, 16:23:39
В php.ini поставь error_reporting  =  E_ALL & ~E_NOTICE, либо через error_reporting() (http://www.php.net/error_reporting)
Название: Помогите искоренить [error] Undefined variable
Отправлено: Меняздесьдавнонет от 10 Сентября 2002, 19:26:31
или в начале скрипта пиши
if (!isset($list)) var $list;
именно к этому нас за уши тянут создатели РНР, превращая его из инструмента быстрой и удобной разработки веб-сайтов в нечто громоздкое и никому не нужное.
Название: Помогите искоренить [error] Undefined variable
Отправлено: Antoxa от 10 Сентября 2002, 19:44:40
вообще-то это подсказка тебе, о том, что ты забыл определить переменную, а "хакеры", блин, не дремлют :)

важное правило. ты _всегда_ должен знать что у тебя в переменной... пустота, хрен знает что или осмысленные данные.
Название: Помогите искоренить [error] Undefined variable
Отправлено: dub от 10 Сентября 2002, 20:06:53
RomikChef

var?? Не слышал я о таком определении переменной в PHP, хотя это и вполне логично с точки зрения, скажем, JavaScript. Я, вообще говоря, переменые объявляю присвоением некоторого значения, то есть в данном случае сделал бы, скажем, так:

if (!isset($list))
    $list="";

Только не совсем понятно, зачем это делать. Все зависит от того, как эта переменная в дальнейшем используется, если она иногда используется, а иногда - нет, то логичнее сделать так:

if (isset($list))
    print $list;

Кстати, не вижу ничего плохого в том, что создатели PHP тянут нас за уши от попыток заставить интерпретатор отобразить неустановленную переменную.
Название: Помогите искоренить [error] Undefined variable
Отправлено: dub от 10 Сентября 2002, 20:14:05
Antoxa
 
Согласен, не сообщения об ошибках надо бороть, а сами ошибки, а именно логику обработки переменных.

А насчет хакеров - чем реально грозит неопределенная текстовая переменная?
Название: Помогите искоренить [error] Undefined variable
Отправлено: Antoxa от 10 Сентября 2002, 20:37:52
тем что ее определит кто-нибудь другой :)
при register_globals on это вполне вероятно
Название: Помогите искоренить [error] Undefined variable
Отправлено: dub от 10 Сентября 2002, 21:19:17
При передаче методом GET (index.php?link=lentap) от этого в любом случае никто не застрахован.
Название: Помогите искоренить [error] Undefined variable
Отправлено: Antoxa от 10 Сентября 2002, 21:34:01
а unset нам на что? :)
хотя я обычно просто пишу

@$var = (int)$_REQUEST[\'var\']; и радуюсь жизни... ну иногда еще навешиваю что-нибудь вроде
@$var = max(0, (int)$_REQUEST[\'var\']); если надо только положительными ограничить...
Название: Помогите искоренить [error] Undefined variable
Отправлено: GotZfild от 10 Сентября 2002, 21:37:44
Цитировать
При передаче методом GET

И не только GET