ASP表单验证方法总结
虽然说表单验证在客户端使用javascript来验证已经可以了,但是我们为了防止访客绕过客户端验证也为了数据安全最好还是在服务器端加上必要的验证,下面我们以实例来讲述asp表单验证方法。
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
html表单只能输入数字 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实际上我们还可以写出很多的验证函数,我这里只是列举一二,希望对大家有所帮助.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论