可能重复:
How do you POST to a page using the PHP header() function?
例如,我需要在出错时将用户重定向到其他页面,但我也想将值发布到该页面。
答案 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脚本选择它们。
但是,如果您正在使用多步骤表单,那么使用会话变量可能是个好主意。这允许您从会话中的每个步骤保存用户输入的信息,如果它们返回上一步,则可以轻松地再次加载它。