Главная PHP Страница для вывода сообщений об ошибках сервера.

PHP


Страница для вывода сообщений об ошибках сервера.

При возникновении ошибок, например когда запрашиваемая страница не найдена или отсутствуют права доступа, сервер отдает соответствующее сообщение, содержащее код ошибки и сопроводительный текст, например

 

 

У вас есть возможность при возникновении ошибок выводить свою страницу с информацией которую посчитаете нужной. Например описание ошибки на русском языке, а кроме того меню, форму поиска и тд. На многих сайтах есть страница, которая открывается при запросе несуществующего URL, что вызывает ошибку 404 Not Found, т.к. данная ошибка самая распространенная. Так же можно выводить информацию и по другим типам ошибок.

Рассмотрим процесс создания такой страницы для ошибок, которые определяются до выполнения скрипта программы самым сервером Apache.

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

ErrorDocument 400 /errors.php
ErrorDocument 403 /errors.php
ErrorDocument 404 /errors.php
ErrorDocument 405 /errors.php
ErrorDocument 408 /errors.php
ErrorDocument 500 /errors.php
ErrorDocument 502 /errors.php
ErrorDocument 504 /errors.php

В данном случаем подключаться будет файл errors.php находящийся в корне сайта. Страница должна открываться по ссылке:
http://ваш_сайт/errors.php 

При открытии данной страницы по прямой ссылке, конечно, не будет выводиться информация касающаяся кода ошибки.
Учтите, что если вы в разработке используете CMS (например WordPress) или фреймворк (например Yii2), то там, скорее всего, уже есть такая страница (или ее нужно создать и подключить определенным образом).

Пример файла errors.php:

<?php
$codes = array(
       400 => array('400. Ошибочный запрос', 'Запрос не может быть обработан из-за синтаксической ошибки.'),
       403 => array('403. Доступ запрещен', 'Сервер отказывает в выполнении вашего запроса.'),
       404 => array('404. Не найдено', 'Запрашиваемая страница не найдена на сервере.'),
       405 => array('405. Метод не допускается', 'Указанный в запросе метод не допускается для заданного ресурса.'),
       408 => array('408. Время ожидания истекло', 'Ваш браузер не отправил информацию на сервер за отведенное время.'),
       500 => array('500. Внутренняя ошибка сервера', 'Запрос не может быть обработан из-за внутренней ошибки сервера.'),
       502 => array('502. Плохой шлюз', 'Сервер получил неправильный ответ при попытке передачи запроса.'),
       504 => array('504. Истекло время ожидания шлюза', 'Вышестоящий сервер не ответил за установленное время.'),
);

if (isset($_SERVER['REDIRECT_STATUS'])){
    $status = $_SERVER['REDIRECT_STATUS'];
    $title = ' '.$codes[$status][0];
    $message = $codes[$status][1];
}

if(!isset($title)){
    $title = $message = '';
}

echo '<h2>Внимание! Обнаружена ошибка'.$title.'!</h2>
<h4>'.$message.'</h4>';

В данном файле вы можете настроить свои стили, разместить меню, контакты администратора и прочее. Приведен упрощенный вариант, который будет выводить основную информацию по ошибке:

 


Комментарии

Написать комментарий