Имитируем ошибки веб-сервера
В протоколе HTTP существует множество статусов, наиболее общеизвестные 200 (всё хорошо), 302 (редирект), 404 (не найдено), 500 (внутренняя ошибка сервера). Их выдает веб-сервер в зависимости от сложившейся ситуации.
В некоторых случаях нам хочется сделать вид, что сервер выдал такую ошибку, например, когда в действительности файл найден, но наш скрипт, обрабатывающий запросы не нашел подходящих данных.
Для этого используется функция PHP - header().
Нам нужно выдать 2 заголовка.
HTTP/1.0 xxx yyyyy
и
Status: xxx yyyyy
Где xxx - код статуса HTTP, yyyyy - описание статуса (в т.ч. ошибки).
Приведем пример для ошибки 404 (не найдено):
error404.php (пример работы)
<?php
header('HTTP/1.0 404 Not Found');
header('Status: 404 Not Found');
echo "<html>\n<head>\n<title>404 Not Found</title>\n</head>\n";
echo "<body><h1>Not Found</h1><p>The server has not found ";
echo "anything matching the Request-URI.</p></body></html>\n";
exit(0);
?>
А также, по просьбам трудящихся, ошибки 503 (сервис недоступен):
error503.php (пример работы)
<?php
header('HTTP/1.0 503 Service Unavailable');
header('Status: 503 Service Unavailable');
echo "<html>\n<head>\n<title>503 Service Unavailable</title>\n</head>\n";
echo "<body><h1>Service Unavailable</h1><p>The server is currently ";
echo "unable to handle the request due to a temporary overloading ";
echo "or maintenance of the server.</p></body></html>\n";
exit(0);
?>
Постоянная ссылка ·
Добавьте на news2.ru
Похожие записи:
- Сертификация ITIL на Brainbench
- Вывод Javascript-сообщений через HTTP заголовок в PHP скриптах
- Сертификация по ASP.NET на Brainbench
- Пример получения whois-данных домена на PHP
- Пара слов про акробат и PDF



host said,
Октябрь 18, 2006 @ 13:44
Миш, :-X
Dennion said,
Октябрь 18, 2006 @ 14:03
А я вот так и не допер зачем использовать Status, я обычно без него делаю и все работает, лоханулся я ?
Mikhail said,
Октябрь 18, 2006 @ 15:20
Dennion: это чтобы работало при любых раскладах. Точную ссылку не дам, но по крайней мере раньше без Status не всегда работало, в зависимости от того, установлен PHP как CGI или как модуль.
Dennion said,
Октябрь 18, 2006 @ 20:39
Учтемс, спасиб
Я всегда знал чем дальше , тем проще.
elliot said,
Февраль 1, 2007 @ 04:14
Хм… Интересная информация…