人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

網(wǎng)站設(shè)計中表單驗證

網(wǎng)站設(shè)計中表單驗證

更新時間:2020-12-23 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

網(wǎng)站設(shè)計中表單驗證(ASP)
作者:劉巍
郵箱:support@ceocio.net
網(wǎng)址:http://www.ceocio.net
一般的動態(tài)網(wǎng)站需要通過表單來收集用戶信息,或者實現(xiàn)與用戶的交互,雖然我們相信絕大多數(shù)人士既然選擇了填寫

表單就會認(rèn)真的完成,但是亦不能避免無聊人士亂填表單,況且即使一個正常用戶在填寫過程中也會無意識的出現(xiàn)一些

填寫錯誤,或者他們忘記了填某些選項。通常為了避免這種情況,開發(fā)者會給表單加一個驗證的過程,在表單數(shù)據(jù)提交

到服務(wù)器之前或者服務(wù)器之后對用戶填寫的數(shù)據(jù)進(jìn)行驗證,若遇到錯誤的填寫則返回要求用戶進(jìn)行更正。
在ASP中程序員們一般是這樣做的:
1、用javascript在客戶端進(jìn)行驗證。
2、用vbscript在客戶端進(jìn)行驗證。
3、用vbscript在服務(wù)器端進(jìn)行驗證。
上面提到了兩個不同的環(huán)境,服務(wù)器端和客戶端,客戶端驗證實際上就是包含在已下載的頁面中,當(dāng)用戶提交表單時

候,它直接在已下載到本地的頁面中調(diào)用script來進(jìn)行驗證,這樣可以減少服務(wù)器端的運算。而服務(wù)器端的驗證則是將

頁面提交到服務(wù)器處理,服務(wù)器上的另一個ASP頁面先執(zhí)行對表單的驗證,然后再返回結(jié)果到客戶端。這樣的缺點是每

一次驗證都要經(jīng)過服務(wù)器,消耗時間較長。但是利用服務(wù)器端驗證卻可以達(dá)到較好的驗證功能。
本文就是主要講述ASP中在服務(wù)器端的驗證。
在了解以下介紹方法之前,你需要想想在表單驗證問題中會遇到哪些需要值得我們控制的地方。就像軟件工程思想一

樣,先分析一下要在哪些方面進(jìn)行驗證。
1、要求用戶的輸入必須是中文(英文或數(shù)字)。
2、要求用戶的輸入必須是有效的郵件地址。
3、對用戶輸入的數(shù)據(jù)進(jìn)行各種不同的限制。
4、限制用戶輸入的數(shù)據(jù)量。
5、....
實際上我們在網(wǎng)站設(shè)計中還會因情況不同而遇到其他很多不同的問題,需要我們自己去定義一些規(guī)定和限制。
下面我們以實例來講述驗證方法。

1、驗證輸入的數(shù)字
假設(shè)一個文本框
<form name="form1" method="post" action="">
<input type="text" name="textfield">
</form>
'要求用戶必須輸入數(shù)字
if not isnumeric(Request.Form("textfield")) then
response.write "重新填寫"
end if
'要求限制數(shù)字長度,如你要用戶輸入oicq號碼
'此例限制了用戶的輸入只有為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是一樣的,隨便你怎么寫了。

2、驗證用戶輸入的郵件地址
'引用一段通用檢測函數(shù)來說明
'由于檢驗程序較長,將其定義為一函數(shù)來調(diào)用
function IsValidEmail(email)
dim names, name, i, c
'Check for valid syntax in an email address.
IsValidEmail = true
names = Split(email, "@")
if UBound(names) <> 1 then
IsValidEmail = false
exit function
end if
for each name in names
if Len(name) <= 0 then
IsValidEmail = false
exit function
end if
for i = 1 to Len(name)
c = Lcase(Mid(name, i, 1))
if InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 and not IsNumeric(c) then
IsValidEmail = false
exit function
end if
next
if Left(name, 1) = "." or Right(name, 1) = "." then
IsValidEmail = false
exit function
end if
next
if InStr(names(1), ".") <= 0 then
IsValidEmail = false
exit function
end if
i = Len(names(1)) - InStrRev(names(1), ".")
if i <> 2 and i <> 3 then
IsValidEmail = false
exit function
end if
if InStr(email, "..") > 0 then
IsValidEmail = false
end if
end function
'上面的這段函數(shù)大家應(yīng)該都看的懂,當(dāng)然你可以修改這段代碼,使得即使用戶輸入XXX@CCC.DDD是錯誤的郵件地址

,因為DDD不是一個有效域名。
'引用的時候可以這樣寫
if IsValidEmail(trim(request("textfield")))=false then
response.write "重新填寫"
end if

3、驗證為空的表單單元
有的信息是要求用戶必須填寫的,所以不允許為空,因此當(dāng)用戶輸入為空的時候需要提示。
'對為空單元的處理
if Request.Form("textfield")="" then
Response.write "填寫為空"
end if

4、判斷用戶輸入的是不是一個日期
首先明白日期值格式2002-11-19
'直接判斷一個值是否是日期
if not isdate(Request.Form("textfield")) then
Response.write "日期填寫出錯"
end if
而我們在設(shè)計網(wǎng)站時候往往用三個下拉框來實現(xiàn)年、月、日三個不同選項,如何將這三個值聯(lián)系起來,并且進(jìn)行驗證

呢?
首先當(dāng)然要建立三個下拉框了,分別命名表單名為date,month,year,然后就是后臺的處理了,因為先前我們在前臺

獲取了date,month,year這三個傳遞過來的值,所以我們必須把他們連接起來合成一個變量才能驗證和存入數(shù)據(jù)庫。連

接成標(biāo)準(zhǔn)日期格式表達(dá)式可以這么寫:
birthday=trim(Request.Form("year"))&"-"&trim(Request.Form("month"))&"-"&trim(Request.Form("date"))
驗證已經(jīng)轉(zhuǎn)換的輸入是否為合法日期可以使用isdate函數(shù):
if not isdate(birthday) then
response.write "錯誤"
end if

5、不允許用戶輸入某些特殊字符
在這里我們假設(shè)傳遞的值是content,我們不允許輸入的值是=和%
if Instr(request("content"),"=")>0 or Instr(request("content"),"%")>0
then
response.write "不能輸入=和%"
end if

實際上我們還可以寫出很多的驗證函數(shù),我這里只是列舉一二,希望對大家有所幫助。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 延安市| 冕宁县| 辽源市| 肇源县| 湘西| 探索| 克山县| 图们市| 青浦区| 博客| 布尔津县| 金沙县| 登封市| 南汇区| 乳山市| 定兴县| 盐边县| 正蓝旗| 改则县| 伊春市| 建瓯市| 读书| 肥城市| 墨玉县| 奈曼旗| 上林县| 乌鲁木齐市| 罗城| 富川| 华池县| 青河县| 拜泉县| 鄂温| 长子县| 盐城市| 南安市| 大悟县| 合肥市| 容城县| 陇西县| 沅江市|