PHP SQL
PHP SQL .ru
  Главная  Уроки  PHP  MySQL  jQuery  RegEx  CSS  Книги  Форум  
 Функции


  На главную

  Назад  Вперед

  Печать

10: Отчет об ошибках

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

Например, РНР позволяет писать программу без объявления переменных. С одной стороны, это удобно для вас. С другой стороны, вы можете допустить орфографическую ошибку в имени переменной и присвоить значение не переменной $string, а переменной $stirng. В результате при обращении к переменной $ string будет получена пустая строка. Также вы можете неправильно передать переменные функциям, что приведет к неожиданным результатам. А искать такие «тонкие», почти мистические, ошибки очень сложно.

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

<?php
error__reporting (E__ALL) ;
// .... далее идет сам сценарий ... ?>
После включения error_reporting ошибки и предупреждения будут выводиться перед выводом основной программы, поэтому могут возникнуть ошибки при работе с Cookies, которые должны быть установлены до первого вывода из сценария.

Типичные сообщения об ошибках Далее мы рассмотрим три типичных сообщения об ошибках.

Notice: Undefined variable: Это сообщение означает, что используемая переменная не была ранее определена в сценарии. Наиболее вероятные причины:
• Вы допустили ошибку в имени переменной.
• У вас есть условие, содержащее определение переменной
• Вы выполняете конкатенацию переменной без предварительного ее объявления.
Со следующей проблемой вы столкнетесь при использовании чужого кода в своей программе:

Notice: Use of undefined constant k - assumed 'k'
Данное предупреждение обычно означает, что вы передаете строку функции без заключения ее в кавычки. Другими словами, вы пытаетесь вызвать strtolower(string) вместо strtolower("string").
Теперь рассмотрим третье сообщение об ошибке:

Notice: Undefined index: i
На практике это означает, что вы пытаетесь обратиться к элементу массива $array[i], но элемента массива с номером i не существует.
Данная ошибка часто возникает, когда вы читаете значения из формы посредством $_POST или $_GET, но в этих массивах нет переменной с указанным вами именем. Обычно такое происходит, если пользователь не выбрал соответствующий переменной переключатель или переменная не была передана в URL при использовании метода GET.

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

 
Предыдущая   На главную   Следующая          

Ваш комментарий:

'

Реклама на сайте | Обмен ссылками | Ссылки | Контакты
Добавить статью | Добавить исходник
2010-2014 © phpsql.ru