我在网站上使用 set_cookie() 。添加一些功能后,我收到Warning: Cannot modify header information - headers already sent by...
错误消息。它引用的标头从哪里启动的行号就是 set_cookie() 所在的行!我检查了一下,它没有被调用两次。
如何追踪这些过早的标题?我查看了源代码,在错误消息开始之前没有看到任何杂散字符或任何东西(我正在使用xdebug,所以第一件事是a
,我以为是我,但实际上是xdebug消息的开头)。我已经为我的代码添加了额外的echo
等等——什么都没有。
PHP 可以告诉我标题何时何地开始吗?还是他们真的从 set_cookie 行开始,如果是这样,我是如何陷入这种境地的,我该如何摆脱?
编辑:我不确定我可以粘贴代码——你只想要 set_cookie() 行吗?我以为标题在那之前就出来了。在此之前还有很多事情要实例化不同的类。而且我不认为我可以发布所有的课程和东西——你知道,专有信息;)
编辑:我已经摆脱了所有终止分隔符(所有?>
s),并确保每个包含文件的第一个字符是<?
. 这令人沮丧!在我进行这些最近的更改之前它正在工作:(((
另外,为什么不起作用headers_sent()
?
if ( headers_sent($filename, $linenum) ) {
echo "headers sent: $filename:$linenum.";
}
set_cookie(...);
给
headers sent: :0.