PHP. Хочу видеть ошибки!!




 Хочу что-то типа такого
Ну что ты поделаешь, иногда на стадии разработки я пишу неправильный код! Хоть тресни. И ещё я хочу видеть нормальные сообщения об ошибках, а не пустой экран!

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

Но на этапе разработки сообщения об ошибках просто необходимы. И не всегда у хостера можно найти быструю возможность изменить ситуацию. Как можно изменить ситуацию?

Я немного погуглил и вот что нашёл:

1. Нужно установить уровень вывода сообщений в E_ALL

Пример кода:

1
error_reporting(E_ALL);

Подробнее об уровнях вывода ошибок и фунцкии error_reporting читать здесь.

2. Установить параметр display_errors=on

Этот параметр устанавливается в php.ini, и если есть возможность – то нужно исправить этот файл.

А если такой возможности нет? Тогда нужно использовать функцию ini_set:

1
ini_set('display_errors', 1);

Вместо резюме

Можно свести эти две строчки в один блок

1
2
error_reporting(E_ALL);
ini_set('display_errors', 1);

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

И всё работает как надо =)

Разумеется, после окончания разработок эти строчки следует убрать.

Посты по теме:

  1. Кеширование в PHP

Категории Веб-программирование |
автор: altesack / Воскресенье, Июнь 14, 2009 / 7 комментов »

7 комментов

    Иногда мне кажется, что тебе жмёт череп…

    Всмысле пишу непонятно и заумно?

    @ altesack, и об очень умных вещах)))

    @ Dandr:
    да нет, полезная штука. Я и сам такое использую, потому что иногда делаешь что-то и никак не понять, почему оно не работает, как нужно.

    @ zeleboba, угу, сам сегодня с таким столкнулся. Кстати, в денвере, которым ты тоже пользуешься.

    Для вывода ошибок можно прописать в .htaccess строку:
    php_flag display_errors On

    Ошибки будут выводиться без указанных строк в php-файлах – кстати, через .htaccess надежнее работает.

    Хм..Нужно будет как-нибудь попробовать.

Ответить