我有一个向我的 SQL 表提交文本的简单表单。问题是用户提交文本后,他们可以刷新页面并再次提交数据,而无需再次填写表单。提交文本后,我可以将用户重定向到另一个页面,但我希望用户留在同一页面上。
我记得读过一些关于为每个用户提供唯一 session ID 并将其与另一个值进行比较的内容,这解决了我遇到的问题,但我忘记了它在哪里。
最佳答案
我还想指出,您可以使用 javascript 方法 window.history.replaceState
来防止在刷新和返回按钮时重新提交。
<script>
if ( window.history.replaceState ) {
window.history.replaceState( null, null, window.location.href );
}
</script>
这里的概念证明:https://dtbaker.net/files/prevent-post-resubmit.php (链接不再有效)
我仍然会推荐 Post/Redirect/Get 方法,但这是一种新颖的 JS 解决方案。
关于php - 页面刷新时如何防止表单重新提交(F5/CTRL+R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320113/