如何防止用户按退格/后退箭头

时间:2013-03-15 15:47:23

标签: javascript

我有一系列调查,一个接一个。似乎在一次调查之后,有些人正在迫使退格回到之前的调查,然后用新信息重新提交。 我怎么能阻止这个?我假设我需要某种Javascript脚本。

我找到了这个 Preventing backspace to go back from the current form

但如果某人故意这样做似乎没有帮助,可能就是这种情况。

3 个答案:

答案 0 :(得分:5)

不要破坏后退按钮。这会破坏浏览器HCI rules

要正确执行此操作,您需要为正在进行的调查的每个实例分配唯一的ID。然后,在开始调查时,请检查之前是否提交过该ID。

答案 1 :(得分:0)

我假设您正在跟踪用户在服务器上的调查进度(通过cookie)。如果用户已经前往调查中的页面N并且您不希望他返回并修改他在第N-1页上的响应,那么即使他试图访问N,您也可以将他呈现给页面N. 1页。这将照顾用户通过按下后退按钮返回N-1页面(即使你阻止退格按钮,他/她可以做的事情)

答案 2 :(得分:0)

我可以看到如何通过创建$ _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