0

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

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

任何帮助。

4

5 回答 5

1

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

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

于 2012-10-02T10:09:59.683 回答
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 则可能)
于 2012-10-02T10:17:05.140 回答
0

使用以下函数来解决这个问题:

ob_start();
于 2012-10-02T10:11:49.403 回答
0

用 javascript 重定向替换标头

echo '<script type="text/javascript">window.location="membre.php";</script>';
于 2012-10-02T10:21:54.443 回答
0

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

于 2012-10-02T10:44:29.993 回答