PHP头位置

PHP头位置,php,header,Php,Header,可能重复: 我正在编写一个脚本,其中表单数据正在提交给另一个脚本。我希望第二个脚本对提交的$\u POST数据执行一些错误检查,如果一切正常,则处理数据。如果数据有错误,我将使用header('位置:http://www.example.com/script.php');将访问者返回表单页面 我遇到的问题是,我希望表单是粘性的——具有正确数据的字段维护用户输入的值。显然,要获取这些值,我需要访问$\u POST数组。但是,当header()调用将访问者转发回表单时,这似乎会被破坏 有没有办法在

可能重复:

我正在编写一个脚本,其中表单数据正在提交给另一个脚本。我希望第二个脚本对提交的
$\u POST
数据执行一些错误检查,如果一切正常,则处理数据。如果数据有错误,我将使用
header('位置:http://www.example.com/script.php');
将访问者返回表单页面

我遇到的问题是,我希望表单是粘性的——具有正确数据的字段维护用户输入的值。显然,要获取这些值,我需要访问
$\u POST
数组。但是,当
header()
调用将访问者转发回表单时,这似乎会被破坏

有没有办法在保留
$\u POST
数据的同时,使用标题位置信息将访问者重定向到另一个页面

现在我像这样使用:
header('Location:http://www.example.com/add.php?id=“.$id.&name=”.$name.&code=”.$code.&desc=”.$description.”)
并以
$\u GET
的身份访问


同样,我可以使用
标题('location:xxx')

您可以在会话中存储
$\u POST
数据:

session_start();
$_SESSION['submitted_data'] = $_POST;

然后通过从
$\u SESSION['submitted\u data']
变量将值加载到输入中,只需记住将
SESSION\u start()

<?php
session_start();
$_SESSION = $_POST;
//do error checking here
//if all is valid
session_write_close();
header('Location: *where you want your form to go*');
die;
?>

在重定向页面上,您可以这样使用它们:

<?php
session_start();
//use $_SESSION like you would the post data
?>

用于此。在表单页面中:

<?php
if (!empty($_COOKIE[session_name()])) {
    // we only start session if there is a session running
    session_id() || session_start();
}

if (empty($_POST) && !empty($_SESSION['POST'])) {
    // make sure you're not overwriting
    $_POST = $_SESSION['POST'];
}
// and so on just like you have $_POST filled

您可以在重定向之前再次执行此操作。为什么不设置会话变量来存储post数据@哈维洛克我甚至不知道从何说起,整个威胁都是大错特错的-(注意:仅当两个页面位于同一服务器中时,此选项才起作用。
<?php
// after you're done with checking and stuff
session_id() || session_start();
$_SESSION['POST'] = $_POST;
header('Location: /script.php');