Можно ли в PHP отключить ошибки и когда это нужно делать

Можно ли в PHP отключить ошибки и когда это нужно делать

От автора: за свои ошибки нужно отвечать! Их нужно исправлять! Но ведь можно исправить как-нибудь потом, когда будет время? В настоящей жизни такое не всегда возможно, а на своем сайте для этого нужно лишь в PHP отключить ошибки.

Зачем прятать свои программные «недостатки»?

Тут, однако, «попахивает» философией, господа разработчики! А программирование и философия – это далеко идущие друг от друга дисциплины. Понятно, что если скрыть свои баги в коде, тогда будет не так стыдно. И никто не узнает, что вы только начинающий программист :) .

В программировании желание убрать ошибки PHP не всегда говорит о непорядочности веб-разработчика. А скорее наоборот: таким образом он пытается обезопасить систему работающего ресурса от взлома и «не напрягать» пользователей отображением сообщений о существующих «недугах» в коде сайта.

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

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

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

Пример уязвимости

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

После запуска скрипта на сайте все пользователи увидят на экране описание данной ошибки. А хакер – получит логин пользователя без всякого взлома, «шума и пыли». Гляньте на следующий скриншот:

Закрываем дыру

В коде такую серьезную прореху можно «закрыть» с помощью «собаки». Точнее, символа «@». Пример:

@$load= mysqli_connect('localhost', 'root', '321', 'site');

Или с помощью функции error_reporting(), передав ей в качестве значения 0.

В первом варианте (с «собачкой») мы отключаем отображение ошибки, допущенной в одной строке. Во втором – запрещаем вывод уведомлений для всего кода скрипта.

Через файлы конфигурации

Кроме этого отключить ошибки PHP можно в htaccess. Данный файл содержит в себе настройки веб-сервера Apache. Чтобы системные сообщения о «багах» не появлялись на страницах ресурса, в данный фал следует добавить следующие строчки:

php_flag display_errors on
php_value error_reporting 0

Получается, что таким образом мы воздействуем не на отдельно взятый скрипт, а на весь код движка в целом. Но это не единственный способ глобального воздействия. Если вы используете Денвер, тогда в нем язык программирования работает в режиме шлюза (CGI). В таком случае нужно отключать ошибки в PHP ini. Найдите в данном файле следующую строку и измените значение директивы на off.

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

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

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

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

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

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

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

Я не робот.

Spam Protection by WP-SpamFree