我有一系列调查,一个接一个。似乎在一次调查之后,有些人正在迫使退格回到之前的调查,然后用新信息重新提交。 我怎么能阻止这个?我假设我需要某种Javascript脚本。
我找到了这个 Preventing backspace to go back from the current form
但如果某人故意这样做似乎没有帮助,可能就是这种情况。
答案 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