Висновок помилок в PHP
Яким би акуратним і уважним нівеб-програміст, під час його роботи можливі помилки і неточності. В результаті це може вилитися в збої сайту або сервісу. Для налагодження під час розробки проекту є можливість включити висновок помилок в PHP.
Як це працює?
PHP безумовно реагує на той чи інший кодскрипта. В одних випадках - виконуючи необхідну дію, в інших - виводить помилку. Даний механізм допомагає розробнику в момент реалізації ділянки коду оперативно виправляти недоліки.
Однак, висновок помилок в PHP потрібен не завжди. Після того як розробка проекту завершена, цю функцію відключають, для того щоб уникнути злому або несанкціонованого доступу.
Налаштування
За всю конфігурацію інтерпретатора PHP відповідаєфайл php.ini. У ньому є директива error_reporting, яка як раз і визначає висновок помилок в PHP. Однак, хоч вона і включає обробку винятків, за відображення їх у вікні браузера відповідає display_errors. Якщо вона відключена, то система відобразить замість помилки порожню сторінку.
Класифікація винятків
Висновок помилок в PHP можна умовно розділити на кілька категорій:
помилки, в результаті яких робота скрипта зупиниться. Так звані, фатальні. До них відносяться E_ERROR, E_COMPILE_ERROR;
помилки, які можна усунути. Їх значення для директиви error_reporting можуть бути: E_WARNING, E_NOTICE і інші.
Варто більш детально розглянути кожен тип і описати його функціонал.
E_ERROR. Зазвичай цей тип посилається на такі помилки, які неможливо оперативно усунути або продовжити виконання скрипта. Сюди можуть входити проблеми з розподілом пам'яті;
E_WARNING. Код продовжить свою роботу, але буде виведено попередження про те, що є якась помилка, код якої вказується в повідомленні. Не критичні;
E_NOTICE. Повідомлення, які показують: сталося щось, що могло б викликати помилку. Також не є критичними для виконання коду;
E_USER_ERROR. Помилки, згенеровані самим користувачем;
E_ALL. Сюди входять всі типи помилок. Як правило, ця опція включена за замовчуванням при установці інтерпретатора.
Як включити висновок помилок в PHP
Методика використання механізмів помилок в PHPможе відрізнятися в залежності від того, де застосовується код - на хостингу або на локальному комп'ютері. У другому випадку розробник може налаштувати свій сервер і відображення так, як йому заманеться, а саме - змінити конфігурацію у файлі php.ini. Досить навести дві директиви - display_errors і error_reporting до наступного вигляду:
display_errors on
error_reporting E_ALL
Дані команди дозволять виводити всі повідомлення про помилки прямо в вікні браузера.
Якщо ж розробка проводиться на віртуальномухостингу, то найчастіше функція відображення помилок там відключена в цілях безпеки. Тому для її активації потрібно використовувати файл настройок сервера Apache htaccess. Зазвичай він знаходиться в корені сайту. Потрібно додати в нього пару рядків з допомогою будь-якого текстового редактора:
php_flag display_errors on
php_value error reporting -1
Також вивести помилки можна прямо з коду, використовуючи функцію ini_set (). Однак варто враховувати, що після закінчення розробки сайту її застосування може викликати проблеми з безпекою.
Запис в файл
PHP дозволяє зберігати всі відбулися помилки в певне місце на жорсткому диску. Для того щоб включити висновок помилок PHP в файл, можна використовувати три способи:
редагувати файл php.ini. Тут потрібно визначити два рядки. Перша - log_errors = On, яка, власне і активує можливість виведення. Друга - error_log = шлях / до бажаного / файлу.
Змінити htaccess. У нього також можна додати два рядки. php_value log_errors «on» і php_value error_log шлях / до файлу.
Використовувати в необхідному місці коду функцію ini_set.
висновок
Висновок помилок в PHP - необхідний інструмент вналагодженні коду. Але також він може створити потенційно вразливі зони. Тому використовувати цей механізм потрібно уважно і акуратно. Після того як сайт або сервіс пройшов всі етапи тестування, потрібно потурбуватися про те, щоб він не відображав помилок, за допомогою яких зловмисник може отримати доступ до важливих даних.