我想知道我可以使用哪些技术来避免用户在刷新页面并再次选择提交时两次发布表单?
例如,我在regiter.php中有表格,并在register.php 中处理它。
第一次我可以在另一个文件中处理,例如register_process.php并重定向到 register.php,但是我必须创建大约 20 个新页面并重新定位大量代码,我不想要那个选项。
第二,我可以玩,headers
我不记得确切的技巧,但有一些糟糕的体验 - 用户在刷新页面后看到旧数据......
第三,我可以在成功后重定向到一些dummy.php并从dummy.php跳转回register.php然后即使他们刷新页面浏览器也不会重新发布,但是它不能使用后退按钮并选择重新来防止他们发布,我知道我可以使页面过期,但我发现我和其他用户可能会看到页面过期错误的烦人体验。
第四,在页面加载后为每个表单使用一些唯一的“访问密钥”,该页面将与表单一起发布,并且一旦使用就不能重复使用,但是我对该功能的逻辑有点挣扎。如何知道密钥在没有存储在 MySQL DB 的情况下被使用,我认为基于时间的访问也不是很好,因为有些用户在页面打开和表单提交之间可能需要很长时间。
我需要更多关于如何避免用户再次提交表单的建议。