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

时间:2015-02-21 11:50:49

标签: php redirect header location contact

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

错误是:

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

表单的网址位于:http://iraust.org/copytest/contact.html

完成表单后的页面是:http://www.iraust.org/copytest/thanks.html(或任何其他方法来反驳此消息)

花了2天时间才回答。请帮帮我。

“标题(” 位置:$ Redirect_Page “);”

5 个答案:

答案 0 :(得分:0)

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

出于某些原因(某些require中的意外错误,某些文件的开头或结尾处的空格等)可能会出现这种情况,但是您提到的错误信息很明显,提到此输出的开始位置: /home/iraustor/public_html/copytest/post.php:1

你应该仔细检查在开幕之前和结束<?php ... ?>之后什么也没有。这适用于被调用脚本中的所有include d或require d个文件。

答案 1 :(得分:0)

正如h7r所指出的,如果使用标题功能,则在调用之前无法打印任何内容。

  

请记住,必须在发送任何实际输出之前调用header(),方法是使用普通HTML标记,文件中的空行或PHP。

     

From Header documentation on PHP.net

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

确保没有发送输出:输出空格或空行也会导致错误。

如果您愿意,可以使用output control functions缓冲输出:这样您就可以打印出您想要的内容,但所有输出都不会立即发送到浏览器,因此您可以使用标题功能而无需导致错误。

答案 2 :(得分:0)

将代码放在某处让我们看看......

可能PHP可能会输出错误或警告等......例如,可能不是您。

答案 3 :(得分:0)

之前没有空间 我完全糊涂了! 表单正在运行,信息将发送到电子邮件 但错误使用户感到紧张

答案 4 :(得分:0)

简单的代码编辑器(记事本++)解决了这个问题 问题:隐藏的空格和非Unicode字符