PHP标头位置

Vij*_*jay 5 php header

可能重复:
PHP标头()重定向与POST变量

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

我遇到的问题是我希望表单是粘性的 - 具有正确数据的字段维护用户放在其中的值.显然,要获得这些值,我需要访问$_POST数组.但是,当header()呼叫将访问者转发回表单时,这似乎被破坏了.

有没有办法使用标题位置东西将访问者重定向到另一个页面,同时仍然保留$_POST数据?

现在我正在使用这样的:header('Location: http://www.example.com/add.php?id='.$id.'&name='.$name.'&code='.$code.'&desc='.$description.'');访问为$_GET.

对于同样的我可以使用和种类的POST header('location: xxx')

Mic*_*780 15

实现这种"粘性形式"的最佳方法是使用会话.

<?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;
?>
Run Code Online (Sandbox Code Playgroud)

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

<?php
session_start();
//use $_SESSION like you would the post data
?>
Run Code Online (Sandbox Code Playgroud)


Dun*_*zzz 3

您可以将$_POST数据存储在会话中:

session_start();
$_SESSION['submitted_data'] = $_POST;
Run Code Online (Sandbox Code Playgroud)

然后通过从$_SESSION['submitted_data']变量加载值将值加载到输入中,只需记住也将session_start()其放在错误页面的顶部即可。