Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Опять об учебнике "PHP5 практика создания Web сайтов"
 
 автор: Kicher   (20.11.2006 в 22:11)   письмо автору
 
 

Почему возникают следующие ошибки:

Notice: Use of undefined constant HTTP_X_FORWARDED_FOR - assumed 'HTTP_X_FORWARDED_FOR' in z:\home\localhost\subdomain\counter\count.php on line 14

Notice: Undefined variable: PHP_SELF in z:\home\localhost\subdomain\counter\count.php on line 26

Notice: Undefined variable: srch in z:\home\localhost\subdomain\counter\count.php on line 81

и плюс ко всему поля странно отображаются... см приложение рис

   
 
 автор: cheops   (20.11.2006 в 23:43)   письмо автору
 
   для: Kicher   (20.11.2006 в 22:11)
 

notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE  

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
 
 автор: Kicher   (21.11.2006 в 17:20)   письмо автору
 
   для: cheops   (20.11.2006 в 23:43)
 

что такое нотайс я понимаю.
я имею ввиду то что я купил книгу, скопировал на диск запускаю а там ошибки...
например:

Notice: Undefined variable: PHP_SELF in z:\home\localhost\subdomain\counter\count.php on line 26

Notice: Undefined variable: srch in z:\home\localhost\subdomain\counter\count.php on line 81


он ругается что не зниет переменную PHP_SELF и srch и так практически в каждом разделе...

что касается форм то там ваще одни натайсы.. (см рис)
просто хочется учится на писать правильно изначально без ошибок...
есть ли более отлаженная версия??

   
 
 автор: indexer   (21.11.2006 в 21:25)   письмо автору
 
   для: Kicher   (21.11.2006 в 17:20)
 

А может у вас версия php не совпадает, а может кто вам ставил сервер не понизил уровень ошибок или сами не понизили, а может......
что вы прицепились к notice понизте уровень ошибок и пользуйтесь.

если это так важно то отладьте скрипт так что бы не выскакивало предупреждений.
такое вполне возможно и кроме того к этому надо стремиться, если уж ну никак не получается то вместо того что бы понижать уровень ошибок ставте знак @

Хочется учится сразу писать правильно?-а вот не получится ошибки все равно неизбежны, все исправляется при отладке, и только , иногда ошибки ловятся уже после сдачи скрипта(отправки на сервер) но считается что это не ошибки а "ФИШКИ" сайта, таких фишек можно насчитать на каждом сайте по несколько штук, а ведь все они раньше были просто "NOTICE"

   
 
 автор: Kicher   (21.11.2006 в 22:32)   письмо автору
 
   для: indexer   (21.11.2006 в 21:25)
 

тяжело просто даже смотреть, "щупать" функции..
когда форум выглядит так как в прикрепленном файле (файлах)...
в других системах и скриптах все работает...
обидно...

   
 
 автор: cheops   (22.11.2006 в 00:52)   письмо автору
 
   для: Kicher   (21.11.2006 в 17:20)
 

notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php  
Error_Reporting
(E_ALL & ~E_NOTICE);  
?> 

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
 
 автор: Николай_Иваныч   (09.01.2007 в 16:18)   письмо автору
 
   для: cheops   (22.11.2006 в 00:52)
 

Нихарашо вы отвечаете.. Дело ведь тут действительно не в Нотисах. Вам ведь даже строки написали, в которых ошибки, а вы даже не заглянули наверное в дистры. На счет неизвестной переменной $srch, которая на самом деле подразумевает $search - такая манипуляция именами сводит на нет вашу "принадлежность к поисковым системам". Причем сложно отслеживается, ведь даже автор не всегда помнит, какие переменные он где и зачем использовал. А остальные нотисы в первоначальном вопросе оттого, что используются предустановленные константы, которые не всегда и предустановлены бывают. Вот и объясните пжалста, когда именно бывает HTTP_X_FORWARDED_FOR, как проявляется и т.п. А то я даже в справочнике ее не нашел.

И зря вы кстате Нотисы отключаете, ведь даже не замечаете, когда используете не описанную (или может оЧеПятанную переменную), как в случае с $srch

# можно же использовать вместо
<?= $description ?>
# такой код
<?= isset($description) ? $description '' ?>
# тогда и нотисы не побеспокоят, и прога стабильнее будет


Спасибо за книгу. Допущенные ошибки в коде (которых, кстати, немало) могут даже способствовать более глубокому изучению. Но хотелось бы больше внимания к вашим достойным того читателям :)

P.S. И еще про константу HTTP_CLIENTIP расскажите, очень интересно, что за зверь

   
 
 автор: Sergey89   (09.01.2007 в 16:42)   письмо автору
 
   для: Kicher   (20.11.2006 в 22:11)
 

>> Undefined variable: PHP_SELF
$_SERVER['PHP_SELF']

При отладке нотайсы всегда надо включать. А в PHP 6 даже E_STRICT войдёт в E_ALL ;)

   
 
 автор: Николай_Иваныч   (09.01.2007 в 17:00)   письмо автору
 
   для: Sergey89   (09.01.2007 в 16:42)
 

Кинте, полалуйста, линку на описание констант PHP 5 (6?)

Кстати, просочилась информация, что если пришло в заголовке запроса какое-то поле, то создастся переменная с префиксом "HTTP_". Может HTTP_CLIENTIP и HTTP_X_FORWARDED_FOR оттуда и берут свое начало? Тогда их надо не в списке констант PHP искать, а.. где?

   
 
 автор: Sergey89   (09.01.2007 в 17:06)   письмо автору
 
   для: Николай_Иваныч   (09.01.2007 в 17:00)
 

http://ru2.php.net/manual/ru/ref.errorfunc.php#e-user-error

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования