Обработка ошибок сервера - http_response_code()
- Подробности
- Категория: PHP
- Просмотров: 449
Для тех, кто начинает делать свой движок или что-то серьезное, всегда нужно будет...
правильно обрабатывать ошибки сервера.
Для начала нам надо получить ответ сервера с помощью функции 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);