П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 186570 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 88301 раз(а).

Учебник HTML.
Просмотров 79979 раз(а).

Руководство по PHP5.
Просмотров 50411 раз(а).

Хостинг через призму DNS.
Просмотров 58240 раз(а).

Подборка текстов стандартных документов.
Просмотров 49372 раз(а).

Учебник PHP - Самоучитель
Просмотров 56240 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 57664 раз(а).

Внешние атаки...
Просмотров 47069 раз(а).

Учебник PHP.
Просмотров 41267 раз(а).

SSI в примерах.
Просмотров 31605 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
Назад Приложение B. Переход от PHP 3 к PHP 4 Вперёд

Сообщение об ошибке

Изменения конфигурации

В PHP 3 уровень серьёзности ошибки устанавливался как простое цифровое значение, образуемое суммированием чисел, относящихся к ошибкам разных уровней. Обычно это были значения 15 для сообщения обо всех ошибках и 7 для простых уведомляющих сообщений.

В PHP 4 имеется большой набор уровней ошибок и предупреждений, а также разборщик конфигурации, который позволяет теперь использовать символьные константы для установки нужного поведения.

Уровни сообщений теперь должны конфигурироваться явно с отделением уровней предупреждений, которые не должны генерировать сообщения об ошибках, x-ируя их из символьной константы E_ALL. Звучит сложно? Хорошо, скажем, вы хотите, чтобы система сообщений об ошибках выводила всё, кроме предупреждений простого стиля, которые категоризированы символьной константой E_NOTICE. Затем вы хотите поместить в ваш php.ini следующее: error_reporting = E_ALL & ~ ( E_NOTICE ). Если вы хотите подавить также и предупреждения, вы добавляете в соответствующую константу скобки и используете бинарную операцию '|':
error_reporting= E_ALL & ~ ( E_NOTICE | E_WARNING).

Предупреждение!

Использование старых значений 7 и 15 для установки сообщений об ошибках это плохая идея, так как при этом подавляются некоторые новые добавленные классы ошибок, в том числе - ошибки разборщика. Это может привести к весьма странному поведению, так как скрипты не смогут больше работать без показа сообщений об ошибках.

В прошлом это приводило также к появлению большого количества невоспроизводимых сообщений о bug'ах, когда люди сообщали о проблемах машины скриптов, которые невозможно было отследить, поскольку TRUE case обычно имел отсутствующий символ '}' в нужном файле, о чём разборщик не мог сообщить по причине неправильно сконфигурированной системы сообщений об ошибках.

Поэтому проверка установок системы сообщений об ошибках это первое, что нужно сделать, если ваш скрипт тихо умирает/die. Zend-машину можно считать в данное время в достаточной степени доработанной, чтобы не получать такого странного поведения.

Дополнительные предупреждения

В большом количестве существующего кода PHP 3 используются конструкции языка, которые должны рассматриваться как очень плохой стиль программирования, поскольку работа этого кода может быть легко нарушена изменениями в других местах. PHP 4 ввёл большое количество уведомляющих сообщений в ситуациях, где PHP 3 этого не делал. Это легко исправить, отключив сообщения E_NOTICE, но обычно лучше скорректировать код.

Наиболее общий случай вывода уведомлений теперь - это использование незакавыченных строковых констант в качестве индексов массивов. PHP 3 и 4 не интерпретируют эти строки, если не известно ключевое слово или константа с этим именем, но если константа с этим именем была определена где-нибудь ещё в коде, это может нарушить работу вашего скрипта. Это может даже представлять опасность для защиты, если взломщик переопределяет строковые константы способом, когда скрипты дают права доступа, которые не предполагались. Так, PHP 4 будет теперь предупреждать вас об использовании незакавыченной строковой константы, как, например, в $_SERVER[REQUEST_METHOD]. Изменение этого на $_SERVER['REQUEST_METHOD'] осчастливит разборщик и значительно улучшит стиль и повысит безопасность вашего кода.

Другое, о чём сейчас также сообщает PHP 4, это использование неинициализированных переменных или элементов массива.

НазадОглавление Вперёд
Поведение разборщика ВверхИнициализаторы


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru