无法修改标头信息(无法检测标头)


Cannot modify header information (connot detect header)

我检查了不同页面中的所有答案并使用了它,但错误仍然出现。请帮帮我。

错误为:

Warning: Cannot modify header information - headers already sent by (output started at /home/iraustor/public_html/copytest/post.php:1) in /home/iraustor/public_html/copytest/post.php on line 57

表单的URL位于此处:http://iraust.org/copytest/contact.html

填写表格后的页面为:http://www.iraust.org/copytest/thanks.html(或任何其他显示此消息的方法)

它花了两天时间,但答案。请帮帮我。

"header("Location:$Redirect_Page");"

如果您发出headers,就像您对重定向(设置Location)所做的那样,您必须确保在该语句之前没有其他输出,因为PHP已经在第一个输出上构建了头(但可能还没有将它们刷新到客户端)。

这种情况可能有几个原因(某些require中出现意外错误,某些文件开头或结尾出现空白,等等),但在提到此输出的起始位置时,错误消息很清楚:/home/iraustor/public_html/copytest/post.php:1

您应该仔细检查<?php ... ?>块打开之前和关闭之后是否没有任何内容。这适用于调用脚本中的所有included或required文件。

正如h7r所指出的,如果使用头函数,则在调用它之前无法打印任何内容。

请记住,在发送任何实际输出之前,必须调用header(),无论是通过普通HTML标记、文件中的空行,还是通过PHP。

来自PHP.net上的Header文档

因此,您应该检查post.php文件中的第57行:启动导致错误的输出。

请确保没有发送输出:空白或空行也是输出,这会导致错误。

如果你愿意,你可以使用输出控制函数来缓冲输出:这样你就可以打印你想要的东西,但你的所有输出都不会立即发送到浏览器,所以你可以使用头函数而不会引起错误。

将您的代码放在我们可以查看的地方…

PHP可能正在输出一个错误或警告,等等。例如,可能不是你。

前面没有空格我完全弄糊涂了!表单正在工作,信息将发送到电子邮件但是这个错误让用户感到紧张

通过简单代码编辑器(notpad++)解决的问题问题:隐藏的空白和非Unicode字符