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
Форумы портала PHP.SU :: Версия для печати :: Достать уже отправленный заголовок HTTP статуса
Форумы портала PHP.SU » » HTTP и PHP » Достать уже отправленный заголовок HTTP статуса

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

1. improbable - 31 Августа, 2013 - 17:48:15 - перейти к сообщению
Появилась идея сделать что-то типо единой страницы для ошибок.

Например, есть функция

PHP:
скопировать код в буфер обмена
  1. function returnError() {
  2.         header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
  3.         include 'error.php';
  4.         exit;
  5. }


Как прочитать уже отправленный заголовок без загрузки дополнительных страниц?

Т.е. я хочу на странице error.php словить уже отправленный заголовок, и исходя из него сформировать текст ошибки.
(Добавление)
Нужен такой метод, который будет работать совместно с .htaccess.
Т.е. он задаёт заголовок, отправляет на error.php, где этот заголовок читается PHP и затем формируется страница ошибки.
2. avtor.fox - 31 Августа, 2013 - 17:50:43 - перейти к сообщению
? Голливудская улыбка

только не пойму смысл сие.
3. improbable - 31 Августа, 2013 - 17:52:34 - перейти к сообщению
avtor.fox пишет:? Голливудская улыбка

только не пойму смысл сие.


А вот и нет. Эта функция делает дополнительный запрос к странице, а мне нужно "словить уже отправленный заголовок".
4. LIME - 31 Августа, 2013 - 17:53:23 - перейти к сообщению
чииивооо?))
5. improbable - 31 Августа, 2013 - 17:54:47 - перейти к сообщению
Сейчас объясню, погодите.. Улыбка
6. LIME - 31 Августа, 2013 - 17:56:55 - перейти к сообщению
погугли быстрые заголовки
возможно ими сможешь перехватывать обычные
7. improbable - 31 Августа, 2013 - 18:00:16 - перейти к сообщению
Вот для наглядности сделал скрипт:

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


А вот содержимое страницы error.php:

PHP:
скопировать код в буфер обмена
  1. $httpstatus = '....'; //вот это мне надо получить
  2. $httpstatus = str_replace($_SERVER['SERVER_PROTOCOL'] . ' ', '', $httpstatus);
  3.  
  4. echo <<<ERRORPAGE
  5. <html>
  6. <head><title>$httpstatus</title></head>
  7. <body bgcolor="white">
  8. <center><h1>$httpstatus</h1></center>
  9. <hr><center>nginx</center>
  10. </body>
  11. </html>
  12. ERRORPAGE;


Теперь понятно? Хорошо
8. Мелкий - 31 Августа, 2013 - 18:00:26 - перейти к сообщению
http://www.php.net/manual/en/fun...esponse-code.php
http://www.php.net/manual/en/fun...headers-list.php ?
9. improbable - 31 Августа, 2013 - 18:04:01 - перейти к сообщению
Мелкий пишет:
http://www.php.net/manual/en/fun...esponse-code.php

то, что нужно! Поклон
спасибо Улыбка
10. LIME - 31 Августа, 2013 - 18:10:13 - перейти к сообщению
нет непонятно
зачем заголовок то получать
просто переопределить его ф-цией header
11. improbable - 31 Августа, 2013 - 18:32:37 - перейти к сообщению
LIME пишет:
нет непонятно
зачем заголовок то получать
просто переопределить его ф-цией header

http://forum.php.su/topic.php?fo...62921#1377962921
12. alexxorlovv - 17 Сентября, 2013 - 01:36:27 - перейти к сообщению

 

Powered by ExBB FM 1.0 RC1