Новини високих технологій
» » Висновок помилок в PHP

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

14-09-2017, 11:07
743
Яким би акуратним і уважним не був веб-програміст, під час його роботи можливі помилки і неточності. В результаті це може вилитися в збої сайту або сервісу. Для налагодження під час розробки проекту є можливість увімкнути вивід помилок в 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 — необхідний інструмент налагодження коду. Але також він може створити потенційно вразливі зони. Тому використовувати цей механізм потрібно уважно і акуратно. Після того як сайт або сервіс пройшов всі етапи тестування, потрібно потурбуватися про те, щоб він не відображав помилок, за допомогою яких зловмисник може отримати доступ до важливих даних.
Цікаво по темі
Не можу зайти в "Плей Маркет". Можливі помилки та їх усунення
Не можу зайти в "Плей Маркет". Можливі помилки та їх усунення
При роботі з сервісом «Плей Маркет» нерідко виникають збої. При цьому з'являється повідомлення про ...
Математика від JavaScript Math
Математика від JavaScript Math
Об'єкт Math мови jаvascript реалізує практичний набір математичних функцій. Складні розрахунки можна виконувати всередині браузера, не
403 Forbidden Nginx: що це і як виправити ситуацію?
403 Forbidden Nginx: що це і як виправити ситуацію?
І рядові користувачі, і веб-майстра часто стикаються з проблемою доступу до окремих сторінок або навіть цілим сайтів в Інтернеті. При цьому замість
Платіжна система QIWI: технічна помилка. Типи помилок
Платіжна система QIWI: технічна помилка. Типи помилок
Що за технічні помилки можуть з'явитися при спробі входу в свій гаманець, які існують проблеми в даній платіжній системі? У статті міститься і інша
Встановлено заборону на відображення сторінки у фреймі: що робити?
Встановлено заборону на відображення сторінки у фреймі: що робити?
Часом у вас можуть виникнути проблеми з вебвізором в метриці "Яндекс. Вебмастера". Ви хочете подивитися запис відвідування вашого сайту, але з
Htaccess (кодування): налаштування, приклади використання
Htaccess (кодування): налаштування, приклади використання
Кожна людина, займаючись серфінгом в інтернеті, набредал на такі веб-сторінки і сайти, які некоректно відображаються. Наприклад, відкривши