Показване на php грешки. Показване на грешки на различни нива в PHP


Нека да разберем как да активираме / деактивираме показването на грешки на сайта. През админ панела и през htaccess файла.

Дисплей за грешка (Забележка, Предупреждение, Фатална грешка) е важно и необходима функция, добре че я има! В противен случай уеб администраторите биха прекарали месеци в ръчно търсене на грешки в кода на сайта си.

Как да активирам показване на грешки от административния панел на Joomla 3?

За да направите това, в административния панел на Joomla отидете на „Система - Общи настройки“.

Отидете в раздела „Сървър“, там ще видите опцията „Съобщения за грешка“. Изберете режима "Максимум".

Запазване.

След това на страниците на сайта ще се появят съобщения за грешки, ако има такива. Това е полезно, ако някъде в сайта видите Бял екран.

След като активирате показването на съобщения за грешка на бял екран, ще видите вида на грешката и нейното описание.
Използвайки това описание, можете да намерите решение в търсене в Yandex или Google.

Активиране на показване на php грешка чрез configuration.php

Ако нямате достъп до административния панел или той не работи, можете да активирате показването на грешки чрез файла configuration.php, който се намира в основната папка на вашия сайт.

Съдържа директива

public $error_reporting = "по подразбиране";

За да активирате показването на грешка, променете по подразбиране на максимум

Как да активирате показването на грешки чрез .htaccess

Ако нямате Joomla, а собствен скрипт или по някаква причина не можете да активирате съобщения за грешки по първите два начина, то това може да стане чрез файла .htaccess, който също се намира в главната папка на вашия сайт.

Отворете .htaccess - обърнете внимание на точката отпред. Ако нямате такъв файл, създайте го.
В CMS системите обикновено се нарича htaccess.txt и може просто да бъде преименуван на .htaccess

Най-отгоре добавете реда:

php_flag display_errors включен

И линията:

php_flag display_errors изключен

изключва показването на грешки.

Какъв вид php съобщения за грешка има?

Най-често срещаните са:

Забележете- известяване за дребни грешки в кода. Обикновено функционалността на сайта остава непокътната.

Тези известия просто се появяват в заглавката.

Внимание- предупреждение за повече сериозни грешки. Понякога при такова предупреждение се запазва и функционалността на сайта, понякога бял екран.

Когато работи с уебсайт, всеки разработчик се е сблъсквал със ситуация, в която при активиране на модул, добавяне на собствен код или извършване на други промени в уебсайта се появява т.нар. БЯЛ ЕКРАН НА СМЪРТТА(бял екран на смъртта), което обикновено се причинява от грешка PHP. Първото действие на разработчика, естествено, е да отмени промените, довели до тази грешка. Но грешката трябва да бъде коригирана, което означава, че трябва да разгледаме какво точно я причинява.

Добре е, ако разработчикът има възможност да прегледа регистрационните файлове на Apache. Но тук възникват трудности: не всеки хост ги поддържа и не всеки програмист има достъп до тях. В крайна сметка, за да ги гледате, ще трябва да отидете на сървъра. Но всички програмисти са мързеливи, което означава, че трябва да търсим по-просто решение. И това решение е директно показване на грешки на екрана.

Не вземам предвид страницата в Drupal, която ви позволява да показвате грешки на екрана (admin/settings/error-reporting), защото... Това няма да ви спаси от бял екран. Той показва грешки, които нарушават модулите, а не сайта като цяло. Тези. ако забравите да го поставите (например) исетза променлива, която може да не е дефинирана, на екрана ще се покаже грешка. Но ако забравите да поставите точка и запетая след извършване на операцията, Drupal вече няма да показва тази грешка и ще видите бял екран.

Има няколко начина за активиране на изхода за грешка.

Метод 1: Разрешаване на показване на грешки чрез php.ini

Ако имате достъп (добре, какво ако) до сървъра, тогава конфигурационен файл php.iniнамерете параметъра съобщаване на грешкаи задайте стойността му на E_ALL.

Error_reporting = E_ALL

Метод 2. Разрешаване на показване на грешки чрез .htaccess

В основата на Drupal има .htaccess файл, който регулира процесите на зареждане на страници. За да активирате съобщенията, отворете го и добавете следните два реда:

Php_flag display_errors на php_flag display_startup_errors на

Метод 3. Разрешаване на показване на грешки чрез index.php

Нека отново се докоснем до файловете в корена на Drupal, но този път index.php. Тук, за да показвате съобщения, трябва да добавите error_reporting(7) преди реда с връзката bootstrap.ini:

Error_reporting(7); require_once "./includes/bootstrap.inc" ;

Метод 4: Разрешаване на показване на грешки чрез settings.php

Веднага ще кажа, че този метод работи само за Drupal 7. В папката sites/default/ има файл settings.php. Отворете го и добавете тези редове:

Докладване_за_грешка(-1); $conf [ "ниво_на_грешка" ] = 2; ini_set ("display_errors" , TRUE ) ; ini_set ("display_startup_errors" , TRUE ) ;

При отстраняване на грешки в скриптове PHP нормаленТова е въпрос на получаване на "бял екран" в браузъра. Което в повечето случаи показва спиране Изпълнение на PHPкод поради грешка. PHP интерпретаторът ви позволява да извеждате официална информацияза грешки на екрана, което значително улеснява отстраняването на грешки. Но по подразбиране (в повечето случаи) това поведение е деактивирано от съображения за сигурност, тоест съобщенията за грешки на PHP не се показват на екрана.

В тази статия ще ви кажа как да накарате PHP да показва съобщения за грешка на екрана на монитора в прозорец на браузър. Инструкциите са валидни за случая, когато използвате уеб сървъра на Apache и ако PHP за вашия сайт е свързан като Apache модул.

Показването на грешки на екрана трябва да се активира само при отстраняване на грешки в сайта. Наличието на такъв код може да повлияе негативно на сигурността на уеб приложението.

Разрешаване на показване на PHP грешки на екрана чрез .htaccess файла

Това е много удобен начинза отстраняване на грешки в PHP код. Работи в почти всички случаи. В папката със скрипта на сайта поставяме .htaccess файла със следното съдържание:

Php_flag display_errors на php_flag display_startup_errors на php_flag error_reporting E_ALL

  • показване на грешки- включва опция за показване на грешки на екрана заедно с останалата част от кода.
  • display_startup_errors- разрешава опцията за показване на грешки, които възникват при стартиране на PHP, когато директивата display_errors все още не работи.
  • съобщаване на грешка- показва кои грешки се показват по ниво на значимост. Когато директивата е зададена на E_ALLвсички грешки се показват.

Разрешаване на изхода за грешка на PHP на екрана в кода на PHP файл

Този метод е удобен, защото вие контролирате показването на грешки на екрана в самия PHP скрипт. Параметрите, зададени с помощта на функцията ini_set(), имат директиви с по-висок приоритет и отмяна php.iniИ .htaccess. Поставете следния код в началото на PHP файла:

Ini_set("display_errors", 1); ini_set("display_startup_errors", 1); ini_set("отчитане на грешка", E_ALL);

Разрешете PHP грешките да се показват на екрана с помощта на файла php.ini

Този метод е подходящ, когато сте администратор на сървър. Във файл php.iniредактиране следващите редове(добавете, ако е необходимо):

Display_errors = On display_startup_errors = On error_reporting = E_ALL

Най-добрият начин за показване на PHP грешки на екрана

По мое мнение на средния потребителнай-удобен за използване .htaccess, особено ако имате повече от един PHP файл. Метод номер 2 е удобен за отстраняване на грешки в един php файл, за да не повлияе на нивото на извеждане на грешки за други php скриптове. Вариант с php.iniПодходящ само за администратори на сървъри, но ефектът му важи за всички сайтове, разположени на този сървър.

Благодарности

При написването на тази статия са използвани следните източници.

Колкото и внимателен и внимателен да е един уеб програмист, в работата му са възможни грешки и неточности. В резултат на това това може да доведе до неизправности на сайта или услугата. За отстраняване на грешки по време на разработването на проект е възможно да се активира извеждане на грешки в 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_ПРЕДУПРЕЖДЕНИЕ. Кодът ще продължи да работи, но ще се покаже предупреждение, което показва, че има някакъв вид грешка, чийто код е посочен в съобщението. Не е критично;

    E_NOTICE. Известия, които показват, че се е случило нещо, което може да причини грешка. Също така не е критично за изпълнението на кода;

    E_USER_ERROR. Грешки, генерирани от самия потребител;

    E_ALL. Това включва всички видове грешки. обикновено, тази опцияактивиран по подразбиране при инсталиране на интерпретатора.

Как да активирам извеждане на грешки в PHP

Методологията за използване на механизми за грешки в PHP може да варира в зависимост от това къде се използва кодът - на хостинг или на локален компютър. Във втория случай разработчикът може да конфигурира сървъра си и да показва както пожелае, а именно да промени конфигурацията във файла php.ini. Достатъчно е да трансформирате две директиви - display_errors и error_reporting в следния вид:

display_errors на

съобщаване на грешка E_ALL

Тези команди ще ви позволят да показвате всички съобщения за грешка директно в прозореца на браузъра.

Ако се извършва разработка на виртуален хостинг, тогава най-често функцията за показване на грешки е деактивирана там от съображения за сигурност. Следователно, за да го активирате, ще трябва да използвате файла с настройки на сървъра Apache htaccess. Обикновено се намира в основата на сайта. Трябва да добавите няколко реда към него с помощта на всеки текстов редактор:

php_flag display_errors включен

php_value докладване на грешки -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 - необходим инструментпри отстраняване на грешки в кода. Но също така може да създаде потенциално уязвими зони. Следователно трябва да използвате този механизъм внимателно и внимателно. След като даден сайт или услуга е преминал през всички етапи на тестване, трябва да се уверите, че той не показва грешки, които биха могли да бъдат използвани от нападател, за да получи достъп до важни данни.

Днес ще разгледаме няколко метода за разрешаване на извеждане на грешки в PHP.

Всеки, дори и най-опитният програмист, редовно прави грешки в кода. Дали това са малки правописни грешки или сериозни грешки в алгоритъма, няма значение, проследяването на грешки е много важна част от развитието. По-долу има няколко начина за проследяване на грешки в PHP кода.

Метод първи. Разрешете извеждането на грешка в php файла.

Можете да активирате докладването за грешки директно в действителния файл, където пишете кода. За да направите това, поставете следните редове в началото:

ini_set("показване_грешки", 1); ini_set("display_startup_errors", 1); съобщаване на грешка (E_ALL);

ini_set ("display_errors", 1) ;

ini_set ("display_startup_errors", 1) ;

съобщаване на грешка (E_ALL);

След това просто стартирайте файла, ако има грешки в кода, те ще бъдат показани на страницата.

Метод втори. Разрешете показването на грешки във файла php.ini.

Можете също да активирате извеждане на грешка в php конфигурации, тогава те ще се показват не само при стартиране конкретен файл, и във всички php файлове. За да направите това, намерете файла php.ini в файлова системавашия сървър и добавете следните редове към него:

error_reporting = E_ALL display_errors = On display_startup_errors = On

съобщаване на грешка = E_ALL

display_errors = Вкл

display_startup_errors = Вкл

След като запазите промените във файла, рестартирайте сървъра си и промените ще влязат в сила.

Метод трети. Разрешете извеждането на грешка във файла .htaccess.

Друг начин за активиране на грешки е да направите промени във файла .htaccess. За да направите това, намерете този файлвъв файловата система на вашия сайт и добавете следните редове към нея:

php_value display_errors 1 php_value display_startup_errors 1 php_value error_reporting E_ALL

php_value display_errors1

php_value display_startup_errors1

php_value error_reporting E_ALL

Бъдете внимателни, както някои CMS системиимате друг файл, наречен htaccess.txt, който служи като шаблон за извършване на корекции. Трябва да промените файла .htaccess, в противен случай промените няма да имат ефект върху изхода за грешка.

Тези три начина можете да активирате извеждане на грешки във вашия проект, написан на PHP. Запомнете обаче, че извеждането на грешка трябва да бъде разрешено само по време на разработка или при проследяване на грешка. Включете тази функцияКогато вашият проект вече е влязъл в производство, това е крайно нежелателно, не мисля, че вашите потребители ще бъдат доволни, когато на страницата се показват грешки вместо желаното съдържание.