2011-04-11 70 views

回答

0

您可以改用$ _SESSION吗?

$_SESSION['var'] = 'foo'; 
//redirect 
+0

嗯,我想到了。但基本上,我错误地将它们发送回注册步骤2,但是在步骤2开始时,它检查步骤1中的POST按钮是否已设置为 – Rob 2011-04-11 18:04:48

+0

@Rob - 听起来您可能正试图使用​​$ _POST对于它不打算用于的东西。为了跟踪会话状态,我将使用$ _SESSION来代替。你可能会以某种方式完成这项工作,但我通常不会想到$ _POST变量会跨越请求。 – TaylorOtwell 2011-04-11 18:07:49

0

在action =“”html标记中,只需将您将它们重定向到的地址即可。这也会将该值发布到该页面。

0

执行重定向时,会发出GET请求。我不相信有可能做一个POST重定向。

通过使用$_REQUEST超级全局变量,您可以修改代码以检查POST和GET请求。这样,您可以将您需要的任何参数作为GET参数传递给重定向,并且仍然让PHP脚本选取它们。

但是,如果您正在使用多步骤表单,使用会话变量可能是一个好主意。这使您可以保存会话中每个步骤的用户输入信息,如果它们返回到上一步,则可以轻松再次加载它。

1

你绝对不能同时POST和重定向。重定向意味着设置多个HTTP标头。但是,有几种解决方案可以满足您的需求。

一个是将数据存储到$ _SESSION并从那里检索,如上面的回答。

另一种方法是将表单从PHP放到一个单独的文件中,并在发布数据中存在错误时将其包含在内,以便在当前POST中拥有所有变量,而无需重定向用户(和在表格中也设置一条错误信息)。

您可以考虑使用AJAX创建帖子并获得结果,然后您将使用javascript进行重定向。

或者,如果您想要传递的变量/值不多,您可以在执行重定向时使用GET。

我相信其他的选择也存在。

相关问题