不寻常的'标题已发送'错误。没有空格也没有改变标题

时间:2011-07-16 02:59:38

标签: php wordpress header http-headers http-post

在你开始告诉我这个错误已有10000000个帖子之前,我知道。

我正在处理wordpress插件,并在提交编辑页面时收到以下错误:

Warning: Cannot modify header information - headers already sent by (output started at ***\wp-content\plugins\***\meta-class-load.php:1067) in ***\wp-includes\pluggable.php on line 934

这个错误的不同之处在于它引用的行不与标题接口,也不在之前输出内容。我检查了围绕php标签的空白,并且没有:P

这是第1067行的内容(和周围环境):

        $name = $field['id'];
        $type = $field['type'];
        $old  = $this->get_meta($post->ID, $field); // THIS IS THE LINE
        $new = isset($_POST[$name]) ? $_POST[$name] : ($field['multiple'] ? array() : '');

任何想法或解决方案都会有所帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

在发送HEADER之前不要输出任何内容,如果这样做,您将无法发送标题,它将引发错误!
在生产服务器上设置error_reporting(0)以确保在header

之前不会显示任何错误也是一种很好的做法。

答案 1 :(得分:0)

1067是输出内容的行。第934行是设置标题的那一行。我认为你让他们倒退了。

答案 2 :(得分:0)

在发送所有标头之前无法发送输出。错误中列出的文件之一,或者可能是其中一个文件包含的文件,正在输出内容。它可能是有意的,有点白色空间,警告或错误信息。

为防止出现错误,您可以尝试调用ob_clean();或ob_end_clean();在标题调用之前清除输出缓冲区。 ob_end_clean();在这些情况下几乎总是成功的。