Как происходит вывод ошибок PHP и других программных багов

Как происходит вывод ошибок PHP и других программных багов

От автора: приветствую вас, дорогие читатели.… Откуда шишка на лбу? Это я вчера грабли нашел на даче, которые потерял в прошлом году. В общем, все банально: сам забыл – сам наступил. Хорошо, что вывод ошибок PHP происходит не с помощью граблей. Хотя на этом тоже можно набить замечательные «шишки»!

Если ошибки не видны?

Если при выполнении кода у вас не отображаются ни предупреждение (warning), ни ошибки (errors), ни исключения (exception), то значит вы талантливый разработчик. Но при условии, что написанные вами программы работают. Хотя может быть и другая причина, почему все идет так гладко – вы забыли включить ошибки PHP. Точнее, их вывод. Это можно сделать несколькими способами:

В настройках веб-сервера Apache (файл .htaccess).

В настройках языка (php.ini).

Напрямую в коде.

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Следует отметить, что хостеры, предоставляющие виртуальное пространство, часто отключают вывод ошибок. Это делается для обеспечения безопасности ресурсов, размещенных на данной площадке. Поэтому вам повезло, если к вашему сайту подключен Apache. Тогда можно, прописав несколько строк, активировать отображение всех errors и warning. Для этого зайдите в .htaccess (если нет, то создаем) и прописываем следующие строки:

В PHP, чтобы включить вывод ошибок используются две директивы:

display_errors – включает или отключает отображение сообщений об ошибках.

error_reporting – устанавливает, какие именно «баги» следует выводить. Задается числом или константой.

Больше информации по принимаемым значениям констант можно «почерпнуть» из технической документации к языку. Благо, PHP хорошо описан.

А как же Денвер?

Не волнуйтесь, я не забыл о нем. В «наборе для джентльменов» включение отображения «багов» настраивается в php.ini. Он является главным средством конфигурации языка в этом и других подобных программных наборах.

Спасибо создателям Denwer! Они все правильно продумали, и поэтому заранее активировали все основные (нужные) параметры. В том числе и «трансляцию» сообщений об ошибках в программном коде.

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

Явная активация

Если не уверены, что хостер включил отображение «багов». Или нужно «перекрыть» параметры, заданные в конфигурационных файлах, тогда используйте явную активацию в коде скрипта.

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

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

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

Например, активируем отображение ошибок, допущенных в именах или не проинициализированных в программном коде переменных:

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Вывод сообщений обо всех типах «багов»:

Также в PHP можно отключить вывод ошибок. Например:

Также можно запретить отображение ошибок для конкретной строки кода. Для этого используется «собака». Точнее символ «@». Пример:

Немного попрактикуемся

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

Создадим почти бесконечный цикл. Он будет «крутится» очень долго, и время ожидание выполнения кода превысит установленный в настройках лимит – полминуты:

В результате мы получаем сообщение о фатальной ошибке типа «шеф, все пропало» :) .

Теперь отключим отображение всех программных «неровностей». Сверху предыдущего кода добавьте строчку:

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

Сегодня мы научились включать ошибки в PHP htaccess и другими способами, с помощью которых вы сможете рассмотреть в коде все «забытые грабли».

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree