我想知道我可以使用什么技术来避免用户在刷新页面并选择再次提交时两次发布表单?
例如,我在regiter.php中有表单并在register.php中处理它.
第一个我可以在另一个文件,例如处理register_process.php并重定向到register.php,但后来我不得不创造约20个新的网页,并搬迁了大量的代码,我不希望这样的选择.
第二我可以玩headers我不记得确切的技巧,但有一些不好的经验 - 用户在刷新后看到页面上的旧数据...
3我可以将成功重定向到一些dummy.php并从dummy.php跳回到register.php然后即使他们刷新页面浏览器也不会重新发布,但是它不能使用后退按钮并选择重新保护它们发布,我知道我可以过期页面,但我发现这令人讨厌的经验,可能是其他用户看到页面过期错误.
第四次为每个表单使用一些独特的"访问键",一旦页面加载,将使用表单发布,一旦使用不能重复使用,但我有点挣扎与该功能的逻辑.知道如何使用密钥而不将其存储在MySQL数据库中,我认为基于时间的连接不是很好,因为有些用户可以在页面打开和表单提交之间花费很长时间.
我需要更多建议如何避免用户再次重新发布表单.
有时主要是为了处理用户输入,我发现自己使用了很多相互嵌套的IF语句,有时它比下面的要多得多,从屏幕左侧到屏幕右侧的if数字10. .
这很难阅读和排除故障,有没有其他方法可以做嵌套if?
我知道switch()然而在这种情况下我必须在第三个而不是第一个进行查询.
if (true) {
if (true) {
if (true) {
...
echo "You are logged in";
} else {
echo "login failed"
}
} else {
echo "incorrect email";
}
}
Run Code Online (Sandbox Code Playgroud)