幾種防止表單重複提交的方法

2022-09-28 19:33:11 字數 860 閱讀 6823

表單重複提交是在多使用者web應用中最常見、帶來很多麻煩的乙個問題。有很多的應用場景都會遇到重複提交問題,比如:

點選提交程式設計客棧按鈕兩次。

點選重新整理按鈕。

使用瀏覽器後退按鈕重複之前的操作,導致重複提交表單。

使用瀏覽器歷史記錄重複提交表單。

瀏覽器重複的http請求。

幾種防止表單重複提交的方法

禁掉提交按鈕。表單提交後使用j**ascript使提交按鈕disable。這種方法防止心急的使用者多次點選按鈕。但有個問題,如果客戶端把j**ascript給禁止掉,這種方法就無效了。

我之前的文章曾說過用一些jquery外掛程式效果不錯。

post/redirect/get模式。在提交後執行頁面程式設計客棧重定向,這就是所謂的post-redipnopjerect-get (prg)模式。簡言之,當使用者提交了表單後,你去執行乙個客戶端的重定向,轉到提交成功資訊頁面。

這能避免使用者按f5導致的重複提交,而其也不會出現瀏覽器表單重複提交的警告,也能消除按瀏覽器前進和後退按導致的同樣問題。

在session中存放乙個特殊標誌。pnopje當表單頁面被請求時,生成乙個特殊的字元標誌串,存在session中,同時放在表單的隱藏域裡。接受處理表單資料時,檢查標識字串是否存在,並立即從session中刪除它,然後正常處理資料。

如果發現表單提交裡沒有有效的標誌串,這說明表單已經被提交過了,忽略這次提交。

這使你的web應用有了更高階的xsrf保護。

在資料庫裡新增約束。在資料庫裡新增唯一約束或建立唯一索引,防止出現重複資料。這是最有效的防止重複提交資料的方法。

本文標題: 幾種防止表單重複提交的方法

本文位址: /wangluo/jsp/105708.html

防止表單重複提交

新增乙個使用者時,發現重複新增了4 5個,原來是重複提交了。怎麼解決這個問題呢,起初是在後端檢查新增的屬性是否已有,例如姓名和手機號是否重複,如果重複就不儲存,沒想到後來隨著業務的複雜化,新增乙個使用者所需時間越來越長,以致在檢查時還沒插入完畢。那就在提交時就關閉form,可是這樣一來,如果後端檢查...

防止表單重複提交

防止表單重複提交 問題 什麼是表單重複提交?regist.jsp registservlet 表單重複提交 危害 刷票 重複註冊 帶來伺服器訪問壓力 拒絕服務 解決方案 在頁面上生成乙個令牌 就是乙個隨機字串 將其儲存到session中,並在表單中攜帶.在伺服器端,獲取資料時,也將令牌獲取,將它與s...

防止重複提交表單

public class refreshserve system.web.ui.page else 呈現前更新標識 protected override void onprerender eventargs e 更新標識,正常提交都刪除該次提交的時間,並生產當前新的時間 private void u...