可能重复:
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)
您可以将$_POST数据存储在会话中:
session_start();
$_SESSION['submitted_data'] = $_POST;
Run Code Online (Sandbox Code Playgroud)
然后通过从$_SESSION['submitted_data']变量加载值将值加载到输入中,只需记住也将session_start()其放在错误页面的顶部即可。