一旦通过POST提交了一些数据,是否可以通过不同的页面将它们作为$ _POST提供,就像$ _SESSION允许我们这样做一样?
答案 0 :(得分:1)
您需要解析$ _POST中的数据并在表单中重新创建它。你可以用隐藏的字段来做。
或者,您可以将$ _POST数据保存在用户会话中,并在需要时引用它。您必须管理数据的生命周期,以确保它不会停留太长时间。
答案 1 :(得分:1)
今天挖掘一个老问题。但我忘了发布我挖的工作解决方案......
将此代码段放在每个页面的顶部
if(isset($_POST) & count($_POST)) { $_SESSION['post'] = $_POST; }
if(isset($_SESSION['post']) && count($_SESSION['post'])) { $_POST = $_SESSION['post']; }
答案 2 :(得分:0)
问题是您是通过存储在$ _GET变量中的URL发送数据,而不是在$ _POST中。如果您希望能够以任一格式提交数据,请改用$ _REQUEST。
关于使用$ _REQUEST是否是一个好主意存在一些争论,但如果你正在做一个简单的网站,它就没有什么不妥。
如果您不想使用$ _REQUEST,那么您可以在您期望的每个变量上使用以下代码:
if (!empty($_GET['foo'])) {
$foo = $_GET['foo'];
} elseif (!empty($_POST['foo'])) {
$foo = $_POST['foo'];
} else {
die("Foo not submitted");
}