也许我遗漏了一些东西,但是不幸的是,以上建议的链接并没有帮助我解决以下问题:
我有一个文件(doctype_head.php),该文件还包含一个身份验证文件,该身份验证文件用于在所有网页上首先加载的登录信息。上次我登录以查看我的登录系统index.php文件时,收到此警告:
Warning: Cannot modify header information - headers already sent by (output started at www.haushalts-geld.de\include\doctype_head.php:40) in www.haushalts-geld.de\login\admin\index.php on line 53
我知道由于在index.php的第53行中的header()调用而收到此警告,并且我也知道如何解决它。此警告似乎与“ doctype_head.php”中的字符数有关。据我所知,在上述header()调用之前未发送任何输出。否则,我想从“ doctype_head.php”中的注释文本(<!--bla bla-->
)中删除几个字符将无法解决已经发送警告的标题。关键是,只有当我将“ doctype_head.php”中的文本保持一定长度时,一切正常。我进行了测试,直到只需要向“ doctype_head.php”中添加一个字符并得到上述警告即可。如果我再次删除此字符,一切都会正常,而不会发出警告。
因此,这就是为什么我想知道是否可能是在我的输出开始之前仅允许我的HTTP标头使用一定数量的字符吗?我认为“ doctype_head.php”中包含的身份验证文件可能是罪魁祸首,因为仅此一项就已经大约6KB。如果是这样,我该怎么解决?如果没有,我还有什么想念的呢?感谢您的帮助。
答案 0 :(得分:0)
因此,这就是为什么我想知道是否可能是在我的输出开始之前仅允许我的HTTP标头使用一定数量的字符吗?
通常不行。您的应用程序中的某些内容必须输出某些内容才能开始输出。
否则,从“ doctype_head.php”中的注释文本(
<!--bla bla-->
)中删除几个字符将无法解决已经发送警告的标题
您的注释样式使用HTML注释,而不是PHP注释。将输出PHP打开/关闭标记之外的任何内容,包括HTML注释的 。 PHP并不真正了解或关心HTML。它只是要输出它。在PHP标记内使用PHP注释代替。 (/* comment */
)更好的是,永远不要关闭PHP标记。不必关闭它。