可能重复:
How do you POST to a page using the PHP header() function?在重定向到新页面之前,我可以设置POST变量吗?
例如,我需要在错误将用户重定向到不同的页面,但我也想发布一个值,该网页为好。
可能重复:
How do you POST to a page using the PHP header() function?在重定向到新页面之前,我可以设置POST变量吗?
例如,我需要在错误将用户重定向到不同的页面,但我也想发布一个值,该网页为好。
您可以改用$ _SESSION吗?
$_SESSION['var'] = 'foo';
//redirect
在action =“”html标记中,只需将您将它们重定向到的地址即可。这也会将该值发布到该页面。
执行重定向时,会发出GET请求。我不相信有可能做一个POST重定向。
通过使用$_REQUEST
超级全局变量,您可以修改代码以检查POST和GET请求。这样,您可以将您需要的任何参数作为GET参数传递给重定向,并且仍然让PHP脚本选取它们。
但是,如果您正在使用多步骤表单,使用会话变量可能是一个好主意。这使您可以保存会话中每个步骤的用户输入信息,如果它们返回到上一步,则可以轻松再次加载它。
你绝对不能同时POST和重定向。重定向意味着设置多个HTTP标头。但是,有几种解决方案可以满足您的需求。
一个是将数据存储到$ _SESSION并从那里检索,如上面的回答。
另一种方法是将表单从PHP放到一个单独的文件中,并在发布数据中存在错误时将其包含在内,以便在当前POST中拥有所有变量,而无需重定向用户(和在表格中也设置一条错误信息)。
您可以考虑使用AJAX创建帖子并获得结果,然后您将使用javascript进行重定向。
或者,如果您想要传递的变量/值不多,您可以在执行重定向时使用GET。
我相信其他的选择也存在。
嗯,我想到了。但基本上,我错误地将它们发送回注册步骤2,但是在步骤2开始时,它检查步骤1中的POST按钮是否已设置为 – Rob 2011-04-11 18:04:48
@Rob - 听起来您可能正试图使用$ _POST对于它不打算用于的东西。为了跟踪会话状态,我将使用$ _SESSION来代替。你可能会以某种方式完成这项工作,但我通常不会想到$ _POST变量会跨越请求。 – TaylorOtwell 2011-04-11 18:07:49