Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Универсальная страница ошибок

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
improbable
Отправлено: 31 Августа, 2013 - 18:28:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Одна страница для всех ошибок.

Генерируется в соответствии с отправленным заголовком ответа HTTP.
Предназначена, в основном, для .htaccess

Страница error.php:

PHP:
скопировать код в буфер обмена
  1. $http_response_code = http_response_code();
  2.  
  3. # Здесь можно определить соответствующее описание для кода ответа
  4. switch ($http_response_code) {
  5.  
  6.         case 400: $http_response_code .= ' Bad Request'; break;
  7.         case 403: $http_response_code .= ' Forbidden'; break;
  8.         case 404: $http_response_code .= ' Not Found'; break;
  9.         case 408: $http_response_code .= ' Request Time-out'; break;
  10.         case 414: $http_response_code .= ' Request-URI Too Large'; break;
  11.         case 500: $http_response_code .= ' Internal Server Error'; break;
  12.         case 502: $http_response_code .= ' Bad Gateway'; break;
  13.         case 503: $http_response_code .= ' Service Unavailable'; break;
  14.        
  15.         default: exit ("\"$http_response_code\" HTTP status code is not defined ");
  16.  
  17. }
  18.  
  19. echo <<<ERRORPAGE
  20. <html>
  21. <head><title>$http_response_code</title></head>
  22. <body bgcolor="white">
  23. <center><h1>$http_response_code</h1></center>
  24. <hr><center>nginx</center>
  25. </body>
  26. </html>
  27. ERRORPAGE;


Пример:

PHP:
скопировать код в буфер обмена
  1. // ... что-то (заголовки ещё не отправлены)
  2.  
  3. if ($condition) {
  4.         header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
  5.         include 'error.php';
  6.         exit;
  7. }
  8.  
  9. // ... что-то


выведет

CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head><title>404 Not Found</title></head>
  3. <body bgcolor="white">
  4. <center><h1>404 Not Found</h1></center>
  5. <hr><center>nginx</center>
  6. </body>
  7. </html>


P.S. Спасибо http://forum.php.su/profile.php?...&member=2668 за открытие мне функции http_response_code() Улыбка

(Отредактировано автором: 31 Августа, 2013 - 18:40:46)

 
 Top
LIME
Отправлено: 31 Августа, 2013 - 18:34:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




полнейшая ахинея
 
 Top
improbable
Отправлено: 31 Августа, 2013 - 18:36:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




LIME пишет:
полнейшая ахинея

да вроде нет Улыбка место на диске, как минимум, можно сохранить Улыбка да и вроде полезная штука. для моей текущей задачи - очень полезная.
 
 Top
LIME
Отправлено: 31 Августа, 2013 - 18:37:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




например при ошибке 500 управление до этого бреда даже не дойдет
а верстку 404 можно отрисовать в веб сервере
и вообще это будет работать только при перенаправлении в 1 точку входа всех запросов
вот эта точка пусть и решает какой код отправить
зачем заголовки менять непонятно
это как самого себя догнать и отвесить пенделя самому себе
(Добавление)
любую задачу можно решить мильёном идиотских способов и парочкой адекватных
в чем лишний раз убеждаемся
(Добавление)
http://www[dot]cyberforum[dot]ru/apache/[dot][dot][dot]hread195347[dot]html
 
 Top
improbable
Отправлено: 31 Августа, 2013 - 18:44:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




LIME пишет:

зачем заголовки менять непонятно

Заголовок, в моём случае, я меняю для того, чтобы скрипт притворился не существующим при определённом условии. Другими словами, я искусственно вызываю ошибку.

А насчёт другого варианта решения проблемы - с удовольствием посмотрю.

Ошибка 500 будет также корректно отображаться.
 
 Top
LIME
Отправлено: 31 Августа, 2013 - 18:45:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




improbable пишет:
Ошибка 500 будет также корректно отображаться.
ну круто))
а теперь сделай критическую ошибку в htaccess и посмотрим как там у тебя отработает))
 
 Top
improbable
Отправлено: 31 Августа, 2013 - 18:45:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




LIME пишет:
http://www[dot]cyberforum[dot]ru/apache/[dot][dot][dot]hread195347[dot]html

это ведь исключение, а не правило?
 
 Top
LIME
Отправлено: 31 Августа, 2013 - 18:46:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




не знаю
я не знаю твоей задачи
ссылкой пнул просто для направления поиска
 
 Top
improbable
Отправлено: 31 Августа, 2013 - 18:47:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




LIME пишет:
критическую ошибку в htaccess

ошибка 500 этим не ограничивается. да и вообще, с чего такие придирки? Улыбка
 
 Top
avtor.fox
Отправлено: 31 Августа, 2013 - 18:47:29
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




improbable пишет:
чтобы скрипт притворился не существующим при определённом условии

ёксель-моксель

PHP:
скопировать код в буфер обмена
  1. if($_SERVER['REMOTE_ADDR'] != '145.33.232.16'){
  2.     //header
  3.     sendError(404); //include error page
  4. }
 
 Top
LIME
Отправлено: 31 Августа, 2013 - 18:48:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




если тебе надо выдавать ошибку по условию то просто шли
PHP:
скопировать код в буфер обмена
  1. header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');

и верстку
зачем замены вообще???
(Добавление)
improbable пишет:
да и вообще, с чего такие придирки?
а с чего какая-то "каляка-маляка" была предложена сообществу для использования?
этож детский лепет
 
 Top
improbable
Отправлено: 31 Августа, 2013 - 19:08:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




avtor.fox пишет:
ёксель-моксель

так у меня и происходит Улыбка просто страница одна на все ошибки

LIME пишет:
если тебе надо выдавать ошибку по условию то просто шли

нет, цель - создать одну страницу для множества ошибок, с возможностью использовать эту страницу в своих приложениях

LIME пишет:
а с чего какая-то "каляка-маляка" была предложена сообществу для использования?

раз не подходит она под ваши цели, ну пройдите стороной, или предложите более простой вариант решения задачи. а задача у меня такая: чтобы для, как минимум, распространённых ошибок, была одна страница. также под мои цели эта страница гибко подстраивается, в отличии от стандартных. просто Вам не понятен смысл, а он есть, если бы Вы столкнулись с такой же задачей.
 
 Top
LIME
Отправлено: 31 Августа, 2013 - 19:23:59
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




improbable )) ты просто глупый))
если апач выбросил ошибку то скрипт уже не запустится
а если ты хочешь ее выбросить за апач тогда нет необходимости получать код из заголовков
бредятина полнейшая
вот другой вариант этого бреда
PHP:
скопировать код в буфер обмена
  1. function sendError($condition) {
  2.     $codes = array(
  3.         400 => ' Bad Request',
  4.         403 => ' Forbidden',
  5.         404 => ' Not Found',
  6.         408 => ' Request Time-out',
  7.         414 => ' Request-URI Too Large',
  8.         500 => ' Internal Server Error',
  9.         502 => ' Bad Gateway',
  10.         503 => ' Service Unavailable'
  11.     );
  12.  
  13.     if (isset($codes[$condition])) {
  14.         header($_SERVER['SERVER_PROTOCOL'] . $condition . $codes[$condition]);
  15.     } else {
  16.         exit('"' . $http_response_code . ' HTTP status code is not defined ');
  17.     }
  18.  
  19.  
  20.  
  21.     echo <<<ERRORPAGE
  22. <html>
  23. <head><title>$condition</title></head>
  24. <body bgcolor="white">
  25. <center><h1>$condition</h1></center>
  26. <hr><center>nginx</center>
  27. </body>
  28. </html>
  29. ERRORPAGE;
  30. }
  31.  
  32. if ($str='Прикинусь что меня нет') {
  33.     sendError(404);
  34.     exit;
  35. }
 
 Top
avtor.fox
Отправлено: 31 Августа, 2013 - 19:32:01
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




LIME пишет:
PHP:
скопировать код в буфер обмена
  1. exit('"' . $http_response_code . ' HTTP status code is not defined ');

ахах, вот это ты загнул))) мол не знаю, что это за ошибка, смотрите на котиков)))
 
 Top
LIME
Отправлено: 31 Августа, 2013 - 19:34:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




avtor.fox это не я ))
это у ТС
я просто привел в более логичный вид без того чтоб сначала слать заголовок а потом его читать и исправлять))
этот гений наверное думает что так он перехватит заголовок с ошибкой апача)))
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Прочее »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB