Как проверить, были ли заголовки уже отправлены в PHP - PullRequest
27 голосов
/ 12 мая 2010

Я думаю, что большинство из нас знает об печально известной ошибке «Заголовки уже отправлены» в PHP. Можно ли как-нибудь проверить, отправлены ли уже заголовки?

Было бы очень удобно сделать это, прежде чем пытаться установить некоторые данные SESSION или аналогичные.

Спасибо!

Ответы [ 2 ]

40 голосов
/ 12 мая 2010

PHP имеет функцию headers_sent(), которая позволяет вам проверить, отправлены ли уже заголовки, прежде чем предпринимать какие-либо действия. Вот как вы можете использовать функцию в своем коде:

if(headers_sent())
{ //if headers already sent out print some message.
echo "Please go to yahoo.com";
}
else{
//send the user automatically to test.php
header('Location: http://yahoo.com');
exit;
}
8 голосов
/ 12 мая 2010

Да, вы можете использовать функцию headers_sent .

Проверяет, были ли заголовки или где они были отправлено.

Вы не можете добавить больше строк заголовка. используя функцию header (), как только Блок заголовка уже отправлен. С помощью этой функции вы можете как минимум предотвратить получение HTTP-заголовка Сообщения об ошибках. Другой вариант заключается в используйте выходную буферизацию.

headers_list также может представлять интерес, который возвращает массив всех отправленных заголовков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...