php - 页面刷新时如何防止表单重新提交(F5/CTRL+R)

标签 php html forms post form-submit

我有一个向我的 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/

相关文章:

jquery - 向左放置一个 div :0 of window (not parent)

具有相等数量范围的PHP MySQL搜索表单

c# - 使所有表单都可以访问表单功能

php - 无法在 Ubuntu 14.04 上安装 magento

php - 无法将正确的结果输出到变量

html - 在 Markdown 中包含 HTML

php - 无法使用 Laravel Dusk 测试输入类型 datetime-local

php - sql 查询 codeigniter 事件记录

php - 在常规代码中读取 Composer 额外配置

jquery 切换/addClass