通行证: 用户 密码
域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏
热门:qq挂机,asp,php,jsp,xml
,sql,.net,编程 程序 网页图象
首页>网络编程>asp专区>正文 中国黑客群攻击美政府网站 拿到部   微软计划开放office文件格式 消除   腾讯联合八部门严厉打击挂机网站   神六载人飞行圆满成功   美国会要求nasa彻底完成空间站建   google中国研究院有望落户清华   深度分析:论雅虎中国的夭折和阿   神六可能于10月13日上午11点发射   盖茨继续当全美首富   adobe ceo痛斥微软 称其管理层从   
热 点 排 行
dll文件下载
qq挂机的n种快速方法
长白山天池怪兽再现 一分钟
腾讯qq调整升级条件 不再诱
ape歌曲的播放、转换和刻录
新开放qq免费挂级网站
qq挂级程序,qq免费挂机源程
刘亦菲 变性人、堕胎,自称
photoshop通道抠图:给秀发
免费把qq炫铃设为本机qq的
用通通通作代理在局域网上
用6位qq注意啦,免费领取6位
超级女声总决赛 现场实况(
用nero制作win98多功能启动
亲身体验!让桌面不再粗糙
推 荐 新 闻
中国黑客群攻击美政府网站
bittorrent被好莱坞招安盗
网站建设中,关键词选择技
神六载人飞行圆满成功
国庆长假上网慎防“移动杀
连环起诉google 传统媒体欲
最强秘籍 ie7最新使用技巧
神六完成总装可接航天器 外
adobe ceo痛斥微软 称其管
微软急调张亚勤回中国 千里
微软宣布重大重组方案 将划
腾讯qq 2005 beta3火热发布
腾讯扩张路线图曝光 陈天桥
腾讯拍拍网正式吹响进军c2
第五届“西湖论剑”文字实
相 关 新 闻
首页>网络编程>asp专区>正文

在asp网站设计中表单验证


http://www.iyit.net  日期:2005-11-24 17:25:59  来源:易特网络技术  点击:
一般的动态网站需要通过表单来收集用户信息,或者实现与用户的交互,虽然我们相信绝大多数人士既然选择了填写表单就会认真的完成,但是亦不能避免无聊人士乱填表单,况且即使一个正常用户在填写过程中也会无意识的出现一些填写错误,或者他们忘记了填某些选项。通常为了避免这种情况,开发者会给表单加一个验证的过程,在表单数据提交到服务器之前或者服务器之后对用户填写的数据进行验证,若遇到错误的填写则返回要求用户进行更正。
在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

上一篇:动网论坛代码分析
下一篇:常用response对象的使用祥解

[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 投稿作者: 易特网络技术
信息来源: 易特网络技术 录入时间: 2005-11-24 17:25:59
浏览次数: 投稿信箱: shtghy@163.com
  友情链接
设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights ?2004-2005 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息