我有一系列的调查,一个接一个。似乎在一次调查之后,有些人正在按下退格键返回之前的调查,然后重新提交新信息。我怎样才能阻止这个?我假设我需要某种 Javascript 脚本。
我发现这个 防止退格键从当前表单返回
但是如果有人故意这样做似乎没有帮助,这可能就是这种情况。
我有一系列的调查,一个接一个。似乎在一次调查之后,有些人正在按下退格键返回之前的调查,然后重新提交新信息。我怎样才能阻止这个?我假设我需要某种 Javascript 脚本。
我发现这个 防止退格键从当前表单返回
但是如果有人故意这样做似乎没有帮助,这可能就是这种情况。
不要破坏后退按钮。这打破了浏览器HCI 规则。
要正确执行此操作,您需要为正在进行的每个调查实例分配一个唯一 ID。然后,在开始调查时,检查该 ID 是否之前未提交过。
我假设您正在跟踪用户在服务器上的调查进度(通过 cookie)。如果用户已进入调查中的页面 N,并且您不希望他返回并修改他在页面 N-1 上的回答,那么即使他尝试访问 N-,您也可以向他展示页面 N。 1 页。这将照顾用户通过按后退按钮返回 N-1 页面(即使您阻止退格按钮,他/她也可以执行此操作)
我可以通过创建 $_SESSION 并在每个表单完成时更新它来了解如何在 PHP 中完成它。
在每一页的开头,只需检查会话是否与正确的调查相关。
我会试着举个例子。
第一页
$_SESSION['status'] = 1; // allowed to view survey 1
if($_SESSION['status'] != 1){
header('Location: /page' . $_SESSION['status'] . '.php');
exit();
}
// your survey
// clicks submit
// goes to 2nd page
.... 第 2 页(第 2 次调查)
$_SESSION['status'] = 2; // updates the status to show is on the 2nd page
if($_SESSION['status'] != 2){
header('Location: /page' . $_SESSION['status'] . '.php');
exit();
}
// your survey
// clicks submit
// goes to 3rd page.. etc