Подтвердить что ты не робот

Как проверить, отправлены ли заголовки в PHP

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

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

Спасибо!

4b9b3361

Ответ 1

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;
}

Ответ 2

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

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

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

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