|
 |
Путь: >
Готовые решения
Готовые решения
Автор: - Yurik
Дата публикации - 21.05.2005
Просмотров: - 3517
Создание своей страницы сообщений об ошибках
Вы человек исскуства и вам совсем не нравится стандартная страница броузера об ошибках. Нужно с этим бороться.
Создаём следующий файл .htaccess (в главном файле httpd.conf администратор сервера
должен поставить/оставить для Вашей AllowOverride All или хотя бы AllowOverride Options)
[quote]<font color="#FF9900"># Сделайте свои индивидуальные сообщения об
ошибках сервера</font><br>
<font color="#0000CC">ErrorDocument 500 /</font><font color="#CC0000">serror.php</font><font color="#0000CC">?e</font>=<font color="#006600">500</font><br>
<font color="#0000CC">ErrorDocument 404 /</font><font color="#CC0000">serror.php</font><font color="#0000CC">?e</font>=<font color="#006600">404</font><br>
<font color="#0000CC">ErrorDocument 401 /</font><font color="#CC0000">serror.php</font><font color="#0000CC">?e</font>=<font color="#006600">401</font><br>
<font color="#0000CC">ErrorDocument 403 /</font><font color="#CC0000">serror.php</font><font color="#0000CC">?e</font>=<font color="#006600">403</font> [/quote]
И соответственно свои сообщения об ошибках - файл serror.php (Весь дизайн размещается в страницах top.php+bottom.php):
[php]
<?php
$e=$HTTP_GET_VARS['e'];
include ('config.php');
$title='Ошибка';
include ('top.php');
switch ($e){
case "401":
$errmsg='Для просмотра этой страницы нужно пройти авторизацию';
break;
case "403":
$errmsg='Доступ к этому файлу запрещен';
break;
case "404":
$errmsg='Файл не найден';
break;
case "500":
$errmsg='Внутренняя ошибка сервера';
break;
default:
$errmsg='Неопознанная ошибка';
}
echo "<h3>".$errmsg."</h3>"
include ('bottom.php');
?>[
/php]
[p]У меня IE и вся эта фигня не пашет/работает и т.д.[/p]
Суть проблемы: когда вы отсылаете простой файл, спереди к нему прикрепляется заголовок
[quote]HTTP/1.1 200 OK[/quote] и броузеры его отображают. Когда выводится сообщение об ошибках - к нему вместо этого заголовка добавляется [quote]HTTP/1.1 404[/quote] или аналогичный. Так как броузер IE - не какой нибудь отстойный Линкс, то у него есть такая очень навороченая фишка, которая размещена
[quote]Сервис->Свойства обозревателя->Дополнительно->Выводить подробные сообщения об ошибках http[/quote] и конечно включена по-умолчанию. Она выводит очень информативные сообщения игнорируя Ваш файл, если он идет после заголовка с кодом ошибки. Правда это не всегда, если Ваш файл более информативный - IE выведет его. Информативность он меряет по количеству байт. Если Ваш файл имеет хотя бы 512 байт - значит он подробный, если 511 и меньше - увы, не сочтите.
[p]Я хочу чтобы у меня это работало на всех броузерах[/p]
Решение 1 (тупое) - послать правильный заголовок [quote]HTTP/1.1 200 OK[/quote] но тогда прощай http авторизация. Решение 2 - файл создавать не меньше 512 байт.
Обсудить в ФОРУМе - комментариев ()
Путь: >
Готовые решения
Если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
|
|