表單重複提交是在多使用者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...