通过不同的页面保存$ _POST变量,如$ _SESSION

时间:2010-08-11 13:31:43

标签: php variables post

一旦通过POST提交了一些数据,是否可以通过不同的页面将它们作为$ _POST提供,就像$ _SESSION允许我们这样做一样?

3 个答案:

答案 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");
}
相关问题