可以在PHP重定向中发布数据吗?

Possible to post data in a PHP redirect?

提问人:Andrew G. Johnson 提问时间:1/21/2009 更新时间:11/9/2011 访问量:9392

问:

好吧,现在我有一个页面(page2.php),在顶部它会进行一些验证检查,如果出现故障,它会反弹回page1.php。问题是page1.php是由帖子加载的,这意味着它是表单的最终结果。这意味着我最初在page1.php上的所有帖子数据都丢失了。

所以这是我的代码:

if ($validation_fails)
{
    header('Location:page1.php');
}
PHP的

评论

0赞 Kent Fredric 1/21/2009
stackoverflow.com/questions/311242/......
0赞 Peter Oram 9/27/2012
您可以从 _POST 美元中提取数据,然后将其作为自己的 POST 传递到下一页。

答:

5赞 Paolo Bergantino 1/21/2009 #1

您可以使用 cURL 回传数据或重新构建数据以在顶部进行验证,如果没有失败,请转到 .如果您正在执行某种多步骤表单,则可以将所有数据保存在会话中,并在会话中有匹配的数据时填充字段。不过,不确定这是否适用。page1.phppage2.php

2赞 Gumbo 1/21/2009 #2

您不能通过或代替重定向到它来包含验证脚本吗?includerequire

3赞 Ólafur Waage 1/21/2009 #3

您可以重新构建逻辑。验证应在 page1 .php 上进行,如果失败,则不会发生重定向。如果成功,您将被重定向。

如果您担心安全(人们只是转到第 2 页),您可以设置一个会话变量,该变量在第 2 页选中并在第 1 页设置。

1赞 Zoredache 1/21/2009 #4

在第 2 页上.php如果验证失败,您可以将帖子的内容存储到 $_SESSION 变量中。

在 page1.php 上,您只需将存储在会话中的数据的正确转义/编码版本作为表单的一部分包含在表单中。您还可以使用它来更新表单,以便用户清楚哪个部分未通过验证。