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