ASP如何防止表單重復(fù)提交(2)_ASP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:如何解決left截取字符標(biāo)題長度不一我們經(jīng)常看到直接用left截字符串時,因為標(biāo)題中會出現(xiàn)漢字和英文共存,所以造成兩條新聞標(biāo)題長度不一,為了解決這個問題我們可以使用下面這個函數(shù)。 % ’************************************************** ’函數(shù)名:gotTopic ’作用:截字符串,漢字一個算
二、如何使用
有兩個地方要用到上述函數(shù),即表單生成時與結(jié)果處理時。假設(shè)上述四個子程序已經(jīng)放入包含文件Forms.inc中,下面的代碼根據(jù)FID值來決定生成表單還是處理表單結(jié)果,它所描述的處理過程適合于大多數(shù)ASP應(yīng)用:
<!--#include file="forms.inc"-->
<HTML>
<HEAD>
<TITLE>表單提交測試</TITLE>
</HEAD
<BODY>
<%
If Request("FID") = "" Then
GenerateForm
Else
ProcessForm
End If
%>
</BODY>
</HTML>
GenerateForm負責(zé)生成表單,表單中應(yīng)該含有一個隱藏的FID,如:
<%
Sub GenerateForm()
%>
<form action="<%=Request.ServerVariables("PATH_INFO")%>" method=GET>
<input type=hidden name=FID value="<%=GenerateFID()%>">
<input type=text name="param1" value="">
<input type=submit value="OK">
</form>
<%
End Sub
%>
ProcessForm負責(zé)處理通過表單提交的內(nèi)容,但在處理之前應(yīng)該先調(diào)用CheckFID()檢查當(dāng)前表單是否已經(jīng)提交,代碼類如:
<%
Sub ProcessForm()
If CheckFID() Then
Response.Write "你輸入的內(nèi)容是" & Request.QueryString("param1")
RegisterFID
Else
Response.Write "此表單只能提交一次!"
End If
End Sub
%>
三、限制與改進措施
上面的asp教程我們介紹了在當(dāng)前會話期間限制同一表單被多次提交的一種方法。在實際應(yīng)用中可能需要從多方面加以改進,例如:
⑴ 在登記表單ID之前檢查用戶輸入數(shù)據(jù)的合法性,使得數(shù)據(jù)不合法時用戶可以按“后退”按鈕返回,在修正后再次提交同一表單。
⑵ 這種對表單提交的限制最多只能在當(dāng)前會話期間有效。如果要求這種限制能夠跨越多個會話,那么就要用到Cookeis或數(shù)據(jù)庫來保存相關(guān)數(shù)據(jù)了。
⑶ 這種方法是不安全的。它僅用于防范誤操作,不能防止熟練用戶有意地多次提交同一表單。
分享:解讀用asp編寫類似搜索引擎功能的代碼首先建一個 access 數(shù)據(jù)庫 ,庫中有一個URLINDEX表,其中URL和Keywords字段分別添加了索引,如下: URL 文本(索引:有(無重復(fù))) Title文本 Description文本 Summary文本 Keywords文本(索引:有(無重復(fù))) 程序文件doquery.asp,代碼: HTMLHEADTITLE簡單搜索引擎
相關(guān)ASP教程:
- 相關(guān)鏈接:
- 教程說明:
ASP教程-ASP如何防止表單重復(fù)提交(2)
。