我检查了不同页面中的所有答案并使用了它,但错误仍然出现。请帮帮我。
错误为:
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 ... ?>
块打开之前和关闭之后是否没有任何内容。这适用于调用脚本中的所有include
d或require
d文件。
正如h7r所指出的,如果使用头函数,则在调用它之前无法打印任何内容。
请记住,在发送任何实际输出之前,必须调用header(),无论是通过普通HTML标记、文件中的空行,还是通过PHP。
来自PHP.net上的Header文档
因此,您应该检查post.php文件中的第57行:启动导致错误的输出。
请确保没有发送输出:空白或空行也是输出,这会导致错误。
如果你愿意,你可以使用输出控制函数来缓冲输出:这样你就可以打印你想要的东西,但你的所有输出都不会立即发送到浏览器,所以你可以使用头函数而不会引起错误。
将您的代码放在我们可以查看的地方…
PHP可能正在输出一个错误或警告,等等。例如,可能不是你。
前面没有空格我完全弄糊涂了!表单正在工作,信息将发送到电子邮件但是这个错误让用户感到紧张
通过简单代码编辑器(notpad++)解决的问题问题:隐藏的空白和非Unicode字符