我是一个尝试开发一些登录面板的新手。现在的问题是
我无法在按下浏览器的后退和前进按钮时停止重新提交表单数据。 试图在谷歌上找到它,但没有有效的解决方案出现。
请赐教我。
答案 0 :(得分:3)
您可能希望实施Post-Redirect-Get方法。
由于您发布了帖子但未重定向,因此可能会因浏览器行为而再次发送POST数据。您需要在POST后重定向才能停止此操作。
下图显示了PRG的流程:
alt text http://upload.wikimedia.org/wikipedia/en/3/3c/PostRedirectGet_DoubleSubmitSolution.png
要执行此操作,请在要发布的页面中,而不是显示结果,而是将用户重定向到另一个结果页面。
e.g。
function redirect($url){
header('Location: '.$url);
exit;
}
if(isset($_POST['submit'])){
$ok = checkLogin($username,$password);
if($ok){
redirect('thank-you.php');
}else{
redirect('login.php?error');
}
}