我有一个多步骤表单并且已经使用java和php验证了它但是我希望在提交并重定向到我想要的页面之后我的客户端是唯一一个看到被删除页面的人,而不是他可以只复制链接并将其提供给某人,而其他人可以将该页面链接到我不想要的那个。
所以更具体一点,我想要它,以便在我的客户提交他的表单以获得一种id或者可以从我的重定向页面查看或检查的内容之后,而不是通过已删除的页面来解决他的问题。在特定的时间。
答案 0 :(得分:1)
如果没有关于使用的框架等的更多信息,请尝试使用sessions
在最终表单处理页面中,执行以下操作:
$_SESSION['form_finished'] = true;
要“记下”此人已完成表格。在最终的“提交”页面中,确保此人已完成表单,例如:
if (!isset($_SESSION['form_finished'])) {
// Redirect to error page, display error message, etc
}
答案 1 :(得分:1)
有几种方法可以做到这一点,但也取决于环境。您可以使用在重定向到页面时检查的参数在表单提交上创建会话,然后在重定向后检查参数是否存在,如@michaelb建议的那样。
<强> form.php的强>
session_start();
$_SESSION['form_finished'] = true;
header('location: /../mycode.php');
然后在destination.php ...
session_start();
if(!$_SESSION['form_finished']) {
header("HTTP/1.0 404 Not Found");
exit;
}
修改强>
要在提交表单后重定向,您需要执行以下操作。
if (isset($_POST['submit'])) {
//form processing code//
if ($no_errors) {
session_start();
$_SESSION['form_finished'] = true;
header('location: /../mycode.php');
}
}
如果您的用户已登录,并且您正在寻找更永久和安全的解决方案,则可以向数据库添加一个字段,您在destination.php上检查该字段而不是$ _SESSION()变量。