0

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

我发现这个 防止退格键从当前表单返回

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

4

3 回答 3

5

不要破坏后退按钮。这打破了浏览器HCI 规则

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

于 2013-03-15T15:49:25.523 回答
0

我假设您正在跟踪用户在服务器上的调查进度(通过 cookie)。如果用户已进入调查中的页面 N,并且您不希望他返回并修改他在页面 N-1 上的回答,那么即使他尝试访问 N-,您也可以向他展示页面 N。 1 页。这将照顾用户通过按后退按钮返回 N-1 页面(即使您阻止退格按钮,他/她也可以执行此操作)

于 2013-03-15T15:54:42.780 回答
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
于 2013-03-15T15:55:19.097 回答