我可以在重定向到新页面之前设置POST变量吗?

时间:2011-04-11 18:01:58

标签: php

  

可能重复:
  How do you POST to a page using the PHP header() function?

例如,我需要在出错时将用户重定向到其他页面,但我也想将值发布到该页面。

4 个答案:

答案 0 :(得分:1)

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

一种是将数据存储到$ _SESSION中并从那里检索它,如上所述。

另一种方法是将表单放在PHP之外,放在一个单独的文件中,如果发布的数据有错误,请将其包含在内,这样就可以在当前POST中获得所有变量,而无需重定向用户(并设置)表单中的错误消息)。

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

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

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

答案 1 :(得分:0)

您可以使用$ _SESSION吗?

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

执行重定向时,会发出GET请求。我不相信可以进行POST重定向。

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

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