Php - 重定向在包含php Constants的语言文件中写入内容后失败

时间:2012-10-02 10:08:56

标签: php redirect http-headers

我在php文件中定义了与语言相关的常量,可以从管理员端编辑,编辑内容后,任何包含它的页面都无法使用php头功能成功重定向。

由于错误报告已关闭,因此不会生成警告消息,并且在提交表单后刷新同一页面,而不是重定向到另一个页面。

任何帮助。

5 个答案:

答案 0 :(得分:1)

当您设置重定向标题时,可能已有一些输出已发送到用户浏览器。

发送内容后设置HTTP标头将不起作用。在发送标题之前,您必须禁止任何输出。

答案 1 :(得分:1)

以上答案是正确的。检查标头是否已使用header_sent

刷新

对于调试,您可以看到错误的位置:

<?php
if( headers_sent( $in_file, $at_line ) ){
    trigger_error('Cannot write redirect header, output started at '.$at_line.' in '.$in_file, E_USER_ERROR );
}

导致早期输出的可能错误是:

  • 在文件开头<?php之前输入的意外文字。
  • 文件末尾?>后的意外文字。 (不需要,反正应该省略)
  • 错误输出。 (特别是提出的通知 - 可能使用Wordpress)

答案 2 :(得分:0)

使用以下功能解决此问题:

ob_start();

答案 3 :(得分:0)

用javascript重定向替换标头

echo '<script type="text/javascript">window.location="membre.php";</script>';

答案 4 :(得分:0)

你的文件编码是“UTF-8”吗?可能是,您的文本编辑器在UTF-8文件中添加了BOM记录。它崩溃了PHP头功能。如果使用UTF-8编码,则应将文件另存为“无BOM的UTF-8”