/ / Висновок помилок в PHP

Висновок помилок в PHP

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

Дані команди дозволять виводити всі повідомлення про помилки прямо в вікні браузера.

php включити висновок помилок

Якщо ж розробка проводиться на віртуальномухостингу, то найчастіше функція відображення помилок там відключена в цілях безпеки. Тому для її активації потрібно використовувати файл настройок сервера Apache htaccess. Зазвичай він знаходиться в корені сайту. Потрібно додати в нього пару рядків з допомогою будь-якого текстового редактора:

php_flag display_errors on

php_value error reporting -1

Також вивести помилки можна прямо з коду, використовуючи функцію ini_set (). Однак варто враховувати, що після закінчення розробки сайту її застосування може викликати проблеми з безпекою.

php висновок помилок в файл

Запис в файл

PHP дозволяє зберігати всі відбулися помилки в певне місце на жорсткому диску. Для того щоб включити висновок помилок PHP в файл, можна використовувати три способи:

  1. редагувати файл php.ini. Тут потрібно визначити два рядки. Перша - log_errors = On, яка, власне і активує можливість виведення. Друга - error_log = шлях / до бажаного / файлу.

  2. Змінити htaccess. У нього також можна додати два рядки. php_value log_errors «on» і php_value error_log шлях / до файлу.

  3. Використовувати в необхідному місці коду функцію ini_set.

висновок

Висновок помилок в PHP - необхідний інструмент вналагодженні коду. Але також він може створити потенційно вразливі зони. Тому використовувати цей механізм потрібно уважно і акуратно. Після того як сайт або сервіс пройшов всі етапи тестування, потрібно потурбуватися про те, щоб він не відображав помилок, за допомогою яких зловмисник може отримати доступ до важливих даних.

Ще почитайте: