我的网站上有一个表单,我已将其包含在页面的侧边栏中。基本上它所做的是收集一些数据,如果这些数据已被正确填写,它会将其传递给另一页上的更大表格。
问题是,我一直收到已发送的标题'提交时出错。奇怪的是,表单在我的开发服务器上工作正常。
基本上我的代码看起来像这样;
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// Checks for errors are here (omitted for brevity)
if(!$errors){
header('Location:'.bloginfo('url').'?page_id=xxx');
}
}
?>
请记住我必须检查错误,是否有其他方法可以在不使用header()的情况下重定向到网站上的其他页面?
答案 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();
}
}
?>
不是我的设计选择(总是更好地从标题重定向)但有时很有用。