use*_*841 0 php header setcookie
我在网站上使用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(...);
Run Code Online (Sandbox Code Playgroud)
给
headers sent: :0.
Run Code Online (Sandbox Code Playgroud)
你可以使用headers_sent():
if (!headers_sent($filename, $linenum)) {
set_cookie(/*...*/);
} else {
echo "Headers already sent in $filename on line $linenum\n";
exit;
}
Run Code Online (Sandbox Code Playgroud)