当前位置: 首页 > 图文教程 > 网络编程 > ASP > 在ASP网站设计中表单验证

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

在ASP网站设计中表单验证


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 135 ::
收藏到网摘: n/a

一般的动态网站需要通过表单来收集用户信息,或者实现与用户的交互,虽然我们相信绝大多数人士既然选择了填写表单就会认真的完成,但是亦不能避免无聊人士乱填表单,况且即使一个正常用户在填写过程中也会无意识的出现一些填写错误,或者他们忘记了填某些选项。通常为了避免这种情况,开发者会给表单加一个验证的过程,在表单数据提交到服务器之前或者服务器之后对用户填写的数据进行验证,若遇到错误的填写则返回要求用户进行更正。
在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
’上面的这段函数大家应该都看的懂,当然你可以修改这段代码,使得即使用户输入[email protected]是错误的邮件地址,因为DDD不是一个有效域名。
’引用的时候可以这样写
if IsValidEmail(trim(request("textfield")))=false then
response.write "重新填写"
end if
3、验证为空的表单单元
有的信息是要求用