Все статьи из текущего раздела

Сообщения об ошибках PHP. Уровни обработки ошибок PHP

Любой программист или начинающий любитель php может забыть указать имя переменной или знак доллара перед ним, или вы можете допустить орфографическую ошибку в имени переменной и присвоить значение не переменной $counter, а переменной $ counte. В результате при обращении к переменной $counter будет получена пустая строка.
Также вы можете неправильно передать переменные функциям, что приведет к неожиданным результатам. А искать ошибки очень сложно.

Чтобы РНР предупреждал о потенциальных проблемах, вам нужно включить директиву error_reporting = E_ALL в файле конфигурации php.ini
Она заставит РНР выводить не только сообщения о явных ошибках, но и предупреждения о потенциальных проблемах. Чтобы включить отчет об ошибках в текущем сценарии, просто добавьте в самом начале сценария вызов функции error_reporting () :

<?php
<?php
error_reporting 
(Е_АLL) ;
//   ....   далее идет  сам сценарий   ... 
?>

После включения error_reporting ошибки и предупреждения будут выводиться перед выводом основной программы, поэтому могут возникнуть ошибки при работе с Сookies, которые должны быть установлены до первого вывода из сценария.
Теперь рассмотрим три типичных сообщения об ошибках.

<?php
Notice
:   Undefined variable:   var in  script.php on  line  n

Это сообщение означает, что используемая переменная не была ранее определена в сценарии. Наиболее вероятные причины:
— Вы допустили ошибку в имени переменной, как было рассмотренно выше.
— У вас есть условие, содержащее определение переменной, например:

<?php
if   ($yurii == "I`m  Yurii ")   
 { 
$he_is_yurii  =   "yes";}

— Вы выполняете конкатенацию переменной без предварительного ее объявления.

Со следующей проблемой вы столкнётесь при использовании чужого кода в своей программе:

<?php
Notice
: Use of undefined constant k assumed `k`   in script.php  on line n

Данное предупреждение обычно означает, что вы передаете строку функции без заключения ее в кавычки. Другими словами, вы пытаетесь вызвать Strtolower (string) вместо strtolower ("string").

Теперь третье сообщение об ошибке:

<?php
Notice
:   Undefined  index:   i   in   script .php on   line  n

На практике это означает, что вы пытаетесь обратиться к элементу массива $аrray[i], но элемента массива с номером i не существует. Данная ошибка часто возникает, когда вы читаете значения из формы посредством $_РОST или $_GET, но в этих массивах нет переменной с указанным вами именем. Обычно такое происходит, если пользователь не выбрал соответствующий переменной переключатель или переменная не была передана в URL при использовании метода GЕТ.

Уровни обработки ошибок PHP

Настройка уровня обработки ошибок PHP определяется параметром error_reporting конфигурационного файла php.ini. Этот параметр определяет типы ошибок, о которых PHP информирует выводом текстового сообщения в окно браузера. Возможные значения этого параметра приведены в нижеследующей таблице.

Уровень ошибки: Тип диагностируемой ошибки
E_ERROR: Ошибки обычных функций (критичные ошибки)
E_WARNING: Обычные предупреждения (не критичные ошибки)
E_PARSE: Ошибки синтаксического анализатора
E_NOTICE: Замечания (аномалии в коде, возможные источники ошибок — следует отключить при наличии русского текста в коде, так как для интернациональных кодировок не обеспечивается корректная работа).
E_CORE_ERROR: Ошибки обработчика
E_CORE_WARNING: Предупреждения обработчика
E_COMPILE_ERROR: Ошибки компилятора
E_COMPILE_WARNING: Предупреждения компилятора
E_USER_ERROR: Ошибки пользователей
E_USER_WARNING: Предупреждения пользователей
E_USER_NOTICE: Уведомления пользователей
E_ALL: Все ошибки

Параметр error_reporting позволяет устанавливать несколько уровней, используя побитовые флаги. К примеру, уровень:

<?php
error_reporting 
E_ALL & ~E_NOTICE 

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

<?php
error_reporting 
E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR


ПОЛЕЗНЫЕ ССЫЛКИ:



www.implantcity.ru - керамическая пломба цена лечение зубов цена. бесплатно Полнее..