搜索

首页  >  问答  >  正文

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

<p>我有一个简单的表单,可以将文本提交到我的 SQL 表。问题是,用户提交文本后,他们可以刷新页面并再次提交数据,而无需再次填写表单。我可以在提交文本后将用户重定向到另一个页面,但我希望用户留在同一页面上。</p> <p>我记得读过一些关于为每个用户提供唯一会话 ID 并将其与另一个值进行比较的内容,这解决了我遇到的问题,但我忘记了它在哪里。</p>
P粉151466081P粉151466081518 天前557

全部回复(2)我来回复

  • P粉817354783

    P粉8173547832023-08-30 09:58:46

    我还想指出,您可以使用 JavaScript 方法 window.history.replaceState 来防止刷新和后退按钮时重新提交。

    sssccc

    概念证明:https://dtbaker.net/files/ Prevent-post-resubmit.php(链接不再有效)

    我仍然推荐 Post/Redirect/Get 方法,但这是一种新颖的 JS 解决方案。

    回复
    0
  • P粉043432210

    P粉0434322102023-08-30 09:17:22

    使用发布/重定向/获取模式。 http://en.wikipedia.org/wiki/Post/Redirect/Get

    在我的网站上,我将在 cookie 或会话中存储消息,在发布后重定向,读取 cookie/会话,然后清除该会话或 cookie 变量的值。

    回复
    0
  • 取消回复