Яким би акуратним і уважним не був веб-програміст, під час його роботи можливі помилки і неточності. В результаті це може вилитися в збої сайту або сервісу. Для налагодження під час розробки проекту є можливість увімкнути вивід помилок в 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 — необхідний інструмент налагодження коду. Але також він може створити потенційно вразливі зони. Тому використовувати цей механізм потрібно уважно і акуратно. Після того як сайт або сервіс пройшов всі етапи тестування, потрібно потурбуватися про те, щоб він не відображав помилок, за допомогою яких зловмисник може отримати доступ до важливих даних.