Wordpress - 错误:已发送标头

时间:2013-03-21 12:01:14

标签: php wordpress

我的网站上有一个表单,我已将其包含在页面的侧边栏中。基本上它所做的是收集一些数据,如果这些数据已被正确填写,它会将其传递给另一页上的更大表格。

问题是,我一直收到已发送的标题'提交时出错。奇怪的是,表单在我的开发服务器上工作正常。

基本上我的代码看起来像这样;

    <?php
    if($_SERVER['REQUEST_METHOD'] == 'POST'){

        // Checks for errors are here (omitted for brevity)

        if(!$errors){
            header('Location:'.bloginfo('url').'?page_id=xxx');
        }
    }
    ?>

请记住我必须检查错误,是否有其他方法可以在不使用header()的情况下重定向到网站上的其他页面?

2 个答案:

答案 0 :(得分:2)

任何发送或修改HTTP标头的函数都必须在任何输出之前调用,否则你会看到它会失败。

以下链接有一个很好的帖子/解释。 How to fix "Headers already sent" error in PHP

答案 1 :(得分:2)

没问题,您可以使用$_POST中的键/值来生成重定向:

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){

    // Checks for errors are here (omitted for brevity)

    if(!$errors){
        $xxx = 'valueofxxxhere';
        echo '<script>document.location="'.bloginfo('url').'?page_id='.$xxx.'";</script>';
        die();
    }
}
?>

不是我的设计选择(总是更好地从标题重定向)但有时很有用。