ASP如何防止表單重復提交_ASP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:如何解決left截取字符標題長度不一我們經常看到直接用left截字符串時,因為標題中會出現漢字和英文共存,所以造成兩條新聞標題長度不一,為了解決這個問題我們可以使用下面這個函數。 % ’************************************************** ’函數名:gotTopic ’作用:截字符串,漢字一個算
用戶提交表單時經常會遇到一些意外情況,比如多次刷新頁面、按了后退鍵等,如果不采取控制措施就會引起表單重復提交的問題。本文介紹的這種防止方法,主要由四個子程序組成,在較為簡單的應用場合,你只要將這些代碼放在包含文件中直接引用即可;對于那些較為復雜的環境,我們在文章的最后給出一些改進建議。
一、基本工作過程
下面我們依次討論這四個子程序。
(一)初始化
這里我們要在Session對象中保存兩個變量,其中:
⑴ 每一個表單對應一個稱為FID的唯一標識,為使該值唯一要用到一個計數器。
⑵ 每當一個表單成功提交,必須在一個Dictionary對象中存儲它的FID。
我們用一個專用的過程來初始化上述數據。雖然以后各個子程序都要調用它,但實際上每一個會話期間它只執行一次:
Sub InitializeFID()
If Not IsObject(Session("FIDList")) Then
Set Session("FIDList")=Server.CreateObject("Scripting.Dictionary")
Session("FID")=0
End If
End Sub
(二)生成表單的唯一標識符
下面這個函數GenerateFID()用于生成表單的唯一標志。該函數首先將FID值加1,然后返回它:
Function GenerateFID()
InitializeFID
Session("FID") = Session("FID") + 1
GenerateFID = Session("FID")
End Function
(三)登記已提交表單
當表單成功地提交時,在Dictionary對象中登記它的唯一標識:
Sub RegisterFID()
Dim strFID
InitializeFID
strFID = Request("FID")
Session("FIDlist").Add strFID, now()
End Sub
(四)檢查表單是否重復提交
在正式處理用戶提交的表單之前,應該在Dictionary對象中檢查它的FID是否已經登記。下面的CheckFID()函數用來完成這個工作,如已經登記,它返回FALSE,否則返回TRUE:
Function CheckFID()
Dim strFID
InitializeFID
strFID = Request("FID")
CheckFID = not Session("FIDlist").Exists(strFID)
End Function
分享:解讀用asp編寫類似搜索引擎功能的代碼首先建一個 access 數據庫 ,庫中有一個URLINDEX表,其中URL和Keywords字段分別添加了索引,如下: URL 文本(索引:有(無重復)) Title文本 Description文本 Summary文本 Keywords文本(索引:有(無重復)) 程序文件doquery.asp,代碼: HTMLHEADTITLE簡單搜索引擎
相關ASP教程:
- 相關鏈接:
- 教程說明:
ASP教程-ASP如何防止表單重復提交
。