Я использую set_cookie () на сайте. После добавления некоторых функций я получаю ошибку Warning: Cannot modify header information - headers already sent by...
. Номер строки, на которую он ссылается относительно того, откуда инициируются заголовки, это та самая строка, где set_cookie ()! И я проверил, он не вызывается дважды.
Как я могу отследить эти преждевременные заголовки? Я посмотрел на исходный код и не увидел каких-либо случайных символов или чего-либо еще до того, как появится сообщение об ошибке (я использую xdebug, поэтому первым делом является
, который, как я думал, был мной, но на самом деле это начало сообщения xdebug). Я набрал код для дополнительных echo
и так далее - ничего.
Может ли PHP сказать мне, когда и где начинаются заголовки? Или они действительно начинаются с линии set_cookie, и если да, то как я оказался в этой ситуации и как мне выбраться?
edit: я не уверен, что могу вставить код - вы хотите просто строку set_cookie ()? Я думал, что заголовки выходили до этого. И до этого много чего происходит, когда создаются разные классы. А также я не думаю, что смогу публиковать все классы и прочее - вы знаете, частную информацию;)
Редактировать: я избавился от всех завершающих разделителей (все ?>
с) и убедился, что первые символы каждого включенного файла <?
. Это расстраивает! Это работало до того, как я сделал эти последние изменения: (((
Кроме того, почему headers_sent()
не работает?
if ( headers_sent($filename, $linenum) ) {
echo "headers sent: $filename:$linenum.";
}
set_cookie(...);
дает
headers sent: :0.