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

时间:2009-01-20 22:52:09

标签: php

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

所以这是我的代码:

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

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

你可以重组逻辑。验证应该在page1.php上进行,如果失败,则不会发生重定向。如果成功,则会重定向。

如果您担心安全问题(人们只是转到第2页),您可以设置在第2页上检查并在第1页上设置的会话变量。

答案 2 :(得分:2)

您是否只能通过includerequire包含验证脚本,而不是重定向到它?

答案 3 :(得分:1)

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

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