一般的動(dòng)態(tài)網(wǎng)站需要通過表單來(lái)收集用戶信息,或者實(shí)現(xiàn)與用戶的交互,雖然我們相信絕大多數(shù)人士既然選擇了填寫表單就會(huì)認(rèn)真的完成,但是亦不能避免無(wú)聊人士亂填表單,況且即使一個(gè)正常用戶在填寫過程中也會(huì)無(wú)意識(shí)的出現(xiàn)一些填寫錯(cuò)誤,或者他們忘記了填某些選項(xiàng)。通常為了避免這種情況,開發(fā)者會(huì)給表單加一個(gè)驗(yàn)證的過程,在表單數(shù)據(jù)提交到服務(wù)器之前或者服務(wù)器之后對(duì)用戶填寫的數(shù)據(jù)進(jìn)行驗(yàn)證,若遇到錯(cuò)誤的填寫則返回要求用戶進(jìn)行更正。
在ASP中程序員們一般是這樣做的:
1、用javascript在客戶端進(jìn)行驗(yàn)證。
2、用vbscript在客戶端進(jìn)行驗(yàn)證。
3、用vbscript在服務(wù)器端進(jìn)行驗(yàn)證。
上面提到了兩個(gè)不同的環(huán)境,服務(wù)器端和客戶端,客戶端驗(yàn)證實(shí)際上就是包含在已下載的頁(yè)面中,當(dāng)用戶提交表單時(shí)候,它直接在已下載到本地的頁(yè)面中調(diào)用script來(lái)進(jìn)行驗(yàn)證,這樣可以減少服務(wù)器端的運(yùn)算。而服務(wù)器端的驗(yàn)證則是將頁(yè)面提交到服務(wù)器處理,服務(wù)器上的另一個(gè)ASP頁(yè)面先執(zhí)行對(duì)表單的驗(yàn)證,然后再返回結(jié)果到客戶端。這樣的缺點(diǎn)是每一次驗(yàn)證都要經(jīng)過服務(wù)器,消耗時(shí)間較長(zhǎng)。但是利用服務(wù)器端驗(yàn)證卻可以達(dá)到較好的驗(yàn)證功能。
本文就是主要講述ASP中在服務(wù)器端的驗(yàn)證。
在了解以下介紹方法之前,你需要想想在表單驗(yàn)證問題中會(huì)遇到哪些需要值得我們控制的地方。就像軟件工程思想一樣,先分析一下要在哪些方面進(jìn)行驗(yàn)證。
1、要求用戶的輸入必須是中文(英文或數(shù)字)。
2、要求用戶的輸入必須是有效的郵件地址。
3、對(duì)用戶輸入的數(shù)據(jù)進(jìn)行各種不同的限制。
4、限制用戶輸入的數(shù)據(jù)量。
5、....
實(shí)際上我們?cè)诰W(wǎng)站設(shè)計(jì)中還會(huì)因情況不同而遇到其它很多不同的問題,需要我們自己去定義一些規(guī)定和限制。
下面我們以實(shí)例來(lái)講述驗(yàn)證方法。
1、驗(yàn)證輸入的數(shù)字
假設(shè)一個(gè)文本框
’要求用戶必須輸入數(shù)字
if not isnumeric(Request.Form("textfield")) then
response.write "重新填寫"
end if
’要求限制數(shù)字長(zhǎng)度,如你要用戶輸入oicq號(hào)碼
’此例限制了用戶的輸入只有為4到10位數(shù)字才有效
if len(Request.Form("textfield"))>10 or len(Request.Form("textfield"))<4 then
response.write "重新填寫"
end if
當(dāng)然上面用Request.Form和Request是一樣的,隨便你怎幺寫了。
在ASP中程序員們一般是這樣做的:
1、用javascript在客戶端進(jìn)行驗(yàn)證。
2、用vbscript在客戶端進(jìn)行驗(yàn)證。
3、用vbscript在服務(wù)器端進(jìn)行驗(yàn)證。
上面提到了兩個(gè)不同的環(huán)境,服務(wù)器端和客戶端,客戶端驗(yàn)證實(shí)際上就是包含在已下載的頁(yè)面中,當(dāng)用戶提交表單時(shí)候,它直接在已下載到本地的頁(yè)面中調(diào)用script來(lái)進(jìn)行驗(yàn)證,這樣可以減少服務(wù)器端的運(yùn)算。而服務(wù)器端的驗(yàn)證則是將頁(yè)面提交到服務(wù)器處理,服務(wù)器上的另一個(gè)ASP頁(yè)面先執(zhí)行對(duì)表單的驗(yàn)證,然后再返回結(jié)果到客戶端。這樣的缺點(diǎn)是每一次驗(yàn)證都要經(jīng)過服務(wù)器,消耗時(shí)間較長(zhǎng)。但是利用服務(wù)器端驗(yàn)證卻可以達(dá)到較好的驗(yàn)證功能。
本文就是主要講述ASP中在服務(wù)器端的驗(yàn)證。
在了解以下介紹方法之前,你需要想想在表單驗(yàn)證問題中會(huì)遇到哪些需要值得我們控制的地方。就像軟件工程思想一樣,先分析一下要在哪些方面進(jìn)行驗(yàn)證。
1、要求用戶的輸入必須是中文(英文或數(shù)字)。
2、要求用戶的輸入必須是有效的郵件地址。
3、對(duì)用戶輸入的數(shù)據(jù)進(jìn)行各種不同的限制。
4、限制用戶輸入的數(shù)據(jù)量。
5、....
實(shí)際上我們?cè)诰W(wǎng)站設(shè)計(jì)中還會(huì)因情況不同而遇到其它很多不同的問題,需要我們自己去定義一些規(guī)定和限制。
下面我們以實(shí)例來(lái)講述驗(yàn)證方法。
1、驗(yàn)證輸入的數(shù)字
假設(shè)一個(gè)文本框
’要求用戶必須輸入數(shù)字
if not isnumeric(Request.Form("textfield")) then
response.write "重新填寫"
end if
’要求限制數(shù)字長(zhǎng)度,如你要用戶輸入oicq號(hào)碼
’此例限制了用戶的輸入只有為4到10位數(shù)字才有效
if len(Request.Form("textfield"))>10 or len(Request.Form("textfield"))<4 then
response.write "重新填寫"
end if
當(dāng)然上面用Request.Form和Request是一樣的,隨便你怎幺寫了。