• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在ASP網站設計中表單驗證

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    一般的動態網站需要通過表單來收集用戶信息,或者實現與用戶的交互,雖然我們相信絕大多數人士既然選擇了填寫表單就會認真的完成,但是亦不能避免無聊人士亂填表單,況且即使一個正常用戶在填寫過程中也會無意識的出現一些填寫錯誤,或者他們忘記了填某些選
    一般的動態網站需要通過表單來收集用戶信息,或者實現與用戶的交互,雖然我們相信絕大多數人士既然選擇了填寫表單就會認真的完成,但是亦不能避免無聊人士亂填表單,況且即使一個正常用戶在填寫過程中也會無意識的出現一些填寫錯誤,或者他們忘記了填某些選項。通常為了避免這種情況,開發者會給表單加一個驗證的過程,在表單數據提交到服務器之前或者服務器之后對用戶填寫的數據進行驗證,若遇到錯誤的填寫則返回要求用戶進行更正。
    在ASP中程序員們一般是這樣做的:
    1、用javascript在客戶端進行驗證。
    2、用vbscript在客戶端進行驗證。
    3、用vbscript在服務器端進行驗證。
    上面提到了兩個不同的環境,服務器端和客戶端,客戶端驗證實際上就是包含在已下載的頁面中,當用戶提交表單時候,它直接在已下載到本地的頁面中調用script來進行驗證,這樣可以減少服務器端的運算。而服務器端的驗證則是將頁面提交到服務器處理,服務器上的另一個ASP頁面先執行對表單的驗證,然后再返回結果到客戶端。這樣的缺點是每一次驗證都要經過服務器,消耗時間較長。但是利用服務器端驗證卻可以達到較好的驗證功能。
    本文就是主要講述ASP中在服務器端的驗證。
    在了解以下介紹方法之前,你需要想想在表單驗證問題中會遇到哪些需要值得我們控制的地方。就像軟件工程思想一樣,先分析一下要在哪些方面進行驗證。
    1、要求用戶的輸入必須是中文(英文或數字)。
    2、要求用戶的輸入必須是有效的郵件地址。
    3、對用戶輸入的數據進行各種不同的限制。
    4、限制用戶輸入的數據量。
    5、....
    實際上我們在網站設計中還會因情況不同而遇到其它很多不同的問題,需要我們自己去定義一些規定和限制。
    下面我們以實例來講述驗證方法。
    1、驗證輸入的數字
    假設一個文本框

    <form name="form1" method="post" action="">
    <input type="text" name="textfield">
    </form>
    ’要求用戶必須輸入數字
    if not isnumeric(Request.Form("textfield")) then
    response.write "重新填寫"
    end if
    ’要求限制數字長度,如你要用戶輸入oicq號碼
    ’此例限制了用戶的輸入只有為4到10位數字才有效
    if len(Request.Form("textfield"))>10 or len(Request.Form("textfield"))<4 then
    response.write "重新填寫"
    end if
    當然上面用Request.Form和Request是一樣的,隨便你怎幺寫了。
    2、驗證用戶輸入的郵件地址
    ’引用一段通用檢測函數來說明
    ’由于檢驗程序較長,將其定義為一函數來調用
    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
    ’上面的這段函數大家應該都看的懂,當然你可以修改這段代碼,使得即使用戶輸入XXX@CCC.DDD是錯誤的郵件地址,因為DDD不是一個有效域名。
    ’引用的時候可以這樣寫
    if IsValidEmail(trim(request("textfield")))=false then
    response.write "重新填寫"
    end if
    3、驗證為空的表單單元
    有的信息是要求用戶必須填寫的,所以不允許為空,因此當用戶輸入為空的時候需要提示。
    ’對為空單元的處理
    if Request.Form("textfield")="" then
    Response.write "填寫為空"
    end if
    4、判斷用戶輸入的是不是一個日期
    首先明白日期值格式2002-11-19
    ’直接判斷一個值是否是日期
    if not isdate(Request.Form("textfield")) then
    Response.write "日期填寫出錯"
    end if
    而我們在設計網站時候往往用三個下拉框來實現年、月、日三個不同選項,如何將這三個值聯系起來,并且進行驗證呢?
    首先當然要建立三個下拉框了,分別命名表單名為date,month,year,然后就是后臺的處理了,因為先前我們在前臺獲取了date,month,year這三個傳遞過來的值,所以我們必須把他們連接起來合成一個變量才能驗證和存入數據庫。連接成標準日期格式表達式可以這幺寫:
    birthday=trim(Request.Form("year"))&"-"&trim(Request.Form("month"))&"-"&trim(Request.Form("date"))
    驗證已經轉換的輸入是否為合法日期可以使用isdate函數:
    if not isdate(birthday) then
    response.write "錯誤"
    end if
    5、不允許用戶輸入某些特殊字符
    在這里我們假設傳遞的值是content,我們不允許輸入的值是=和%
    if Instr(request("content"),"=")>0 or Instr(request("content"),"%")>0
    then
    response.write "不能輸入=和%"
    end if

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>