Обработка ошибок сервера - http_response_code()

Для тех, кто начинает делать свой движок или что-то серьезное, всегда нужно будет...

правильно обрабатывать ошибки сервера.

Для начала нам надо получить ответ сервера с помощью функции http_response_code().

Она обычно уже обрабатывается на сервере и, если ее распечатать, то вернет 200 - если нет ошибок.

Работает она в версиях (PHP 5 >= 5.4.0, PHP 7, PHP 8)

 

 

И далее можно обработать так:

 

$status = http_response_code();
//echo $status; // 200
$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 Истекло время ожидания шлюза', 'Вышестоящий сервер не ответил за установленное время.'),
);

$title = $codes[$status][0];
//$status = 502;
if ($status == 200) {//пропускаем
} else {
    $message = $codes[$status][0];
    echo '<h1>Внимание! Обнаружена ошибка '.$title.'!</h1>';
    echo '<p>'.$message.'</p>';
    echo '<p>Наши мастера уже работают над ее устранением. Через 1 минуту пожалуйста перезагрузите страницу</p>';
    exit();
}

 С данной функцией http_response_code() - можно как получить код, так и установить его принудительно при написании скриптов на php:

http_response_code(404);

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта PHP Обработка ошибок сервера - http_response_code()