现在我有一个页面(page2.php),在顶部它会进行一些验证检查,如果出现故障,它会反弹回page1.php。问题是page1.php是由帖子加载的,这意味着它是表单的最终结果。这意味着我最初在page1.php上发布的所有帖子数据都将丢失。
所以这是我的代码:
if ($validation_fails)
{
header('Location:page1.php');
}
答案 0 :(得分:5)
您可以使用cURL
发布数据或重新构建数据,以便在page1.php
的顶部进行验证,如果没有失败,请转到page2.php
。如果您正在执行某种多步骤表单,则可以将所有数据保存在会话中,并在会话中存在匹配数据时填充字段。但不确定是否适用。
答案 1 :(得分:3)
你可以重组逻辑。验证应该在page1.php上进行,如果失败,则不会发生重定向。如果成功,则会重定向。
如果您担心安全问题(人们只是转到第2页),您可以设置在第2页上检查并在第1页上设置的会话变量。
答案 2 :(得分:2)
您是否只能通过include
或require
包含验证脚本,而不是重定向到它?
答案 3 :(得分:1)
在page2.php如果验证失败,您可以将帖子的内容存储到$ _SESSION变量中。
在page1.php上,您只需包含作为表单一部分存储在会话中的数据的正确转义/编码版本。您还可以使用它来更新表单,以便用户清楚哪个部分未通过验证。