搜尋

首頁  >  問答  >  主體

如何在頁面刷新時(F5 / CTRL+R)防止表單重新提交

<p>我有一個簡單的表單,可以將文字提交到我的 SQL 表。問題是,用戶提交文字後,他們可以刷新頁面並再次提交數據,而無需再次填寫表單。我可以在提交文字後將用戶重定向到另一個頁面,但我希望用戶留在同一頁上。 </p> <p>我記得讀過一些關於為每個用戶提供唯一會話 ID 並將其與另一個值進行比較的內容,這解決了我遇到的問題,但我忘記了它在哪裡。 </p>
P粉151466081P粉151466081455 天前515

全部回覆(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
  • 取消回覆