【发布时间】:2011-08-03 06:50:28
【问题描述】:
可能重复:
How do you POST to a page using the PHP header() function?
例如,我需要在出错时将用户重定向到不同的页面,但我也想在该页面上发布一个值。
【问题讨论】:
标签: php
可能重复:
How do you POST to a page using the PHP header() function?
例如,我需要在出错时将用户重定向到不同的页面,但我也想在该页面上发布一个值。
【问题讨论】:
标签: php
你能改用 $_SESSION 吗?
$_SESSION['var'] = 'foo';
//redirect
【讨论】:
在 action="" html 标记中,只需输入您将它们重定向到的地址。这也会将该值发布到该页面。
【讨论】:
执行重定向时,会发出 GET 请求。我不相信可以进行 POST 重定向。
您可以修改代码以使用$_REQUEST 超级全局变量检查POST 和GET 请求。这样,您可以将重定向中所需的任何参数作为 GET 参数传递,并且仍然让您的 PHP 脚本获取它们。
但是,如果您使用的是多步骤表单,那么使用会话变量可能是个好主意。这使您可以保存用户在会话的每个步骤中输入的信息,以便在他们返回上一步时轻松再次加载。
【讨论】:
您绝对不能同时发布和重定向。重定向意味着设置几个 HTTP 标头。但是,有几种解决方案可以满足您的需求。
一个是将数据存储到 $_SESSION 并从那里检索它,如上面回答的那样。
另一种方法是将表单与 PHP 放在一个单独的文件中,如果您在发布的数据中有错误,则将其包含在内,这样您就可以在当前 POST 中拥有所有变量,而无需重定向用户(并设置表单中的错误消息)。
您可以考虑使用 AJAX 发布帖子并获取结果,然后您将使用 javascript 进行重定向。
或者,如果您想要传递的变量/值不多,您可以在进行重定向时使用 GET。
我相信还有其他选择。
【讨论】: