仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 512|回复: 7
打印 上一主题 下一主题

[学习教程] ASP编程:在ASP网站计划中表单考证

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:45:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。表单考证|计划|表单考证一样平常的静态网站必要经由过程表单来搜集用户信息,大概完成与用户的交互,固然我们信任尽年夜多半人士既然选择了填写表单就会仔细的完成,可是亦不克不及制止无聊人士乱填表单,何况即便一个一般用户在填写过程当中也会有意识的呈现一些填写毛病,大概他们健忘了填某些选项。一般为了不这类情形,开辟者会给表单加一个考证的历程,在表双数据提交到服务器之前大概服务器以后对用户填写的数据举行考证,若碰到毛病的填写则前往请求用户举行改正。
在ASP中程序员们通常为如许做的:
1、用JavaScript在客户端举行考证。
2、用VBscript在客户端举行考证。
3、用VBScript在服务器端举行考证。
下面提到了两个分歧的情况,服务器端和客户端,客户端考证实践上就是包括在已下载的页面中,当用户提交表单时分,它间接在已下载到当地的页面中挪用script来举行考证,如许能够削减服务器真个运算。而服务器真个考证则是将页面提交到服务器处置,服务器上的另外一个ASP页面先实行对表单的考证,然后再前往了局到客户端。如许的弱点是每次考证都要经由服务器,损耗工夫较长。可是使用服务器端考证却能够到达较好的考证功效。
本文就是次要报告ASP中在服务器真个考证。
在懂得以下先容办法之前,你必要想一想在表单考证成绩中会碰到哪些必要值得我们把持的中央。就像软件工程头脑一样,先剖析一下要在哪些方面举行考证。
1、请求用户的输出必需是中文(英文或数字)。
2、请求用户的输出必需是无效的邮件地点。
3、对用户输出的数据举行各类分歧的限定。
4、限定用户输出的数据量。
5、....
实践上我们在网站计划中还会因情形分歧而碰到别的良多分歧的成绩,必要我们本人往界说一些划定和限定。
上面我们以实例来说述考证办法。
1、考证输出的数字
假定一个文本框

<formname="form1"method="post"action="">
<inputtype="text"name="textfield">
</form>
’请求用户必需输出数字
ifnotisnumeric(Request.Form("textfield"))then
response.write"从头填写"
endif
’请求限定数字长度,如你要用户输出oicq号码
’此例限定了用户的输出只要为4到10位数字才无效
iflen(Request.Form("textfield"))>10orlen(Request.Form("textfield"))<4then
response.write"从头填写"
endif
固然下面用Request.Form和Request是一样的,任意你怎幺写了。
2、考证用户输出的邮件地点
’援用一段通用检测函数来讲明
’因为查验程序较长,将其界说为一函数来挪用
functionIsValidEmail(email)
dimnames,name,i,c
’Checkforvalidsyntaxinanemailaddress.
IsValidEmail=true
names=Split(email,"@")
ifUBound(names)1then
IsValidEmail=false
exitfunction
endif
foreachnameinnames
ifLen(name)<=0then
IsValidEmail=false
exitfunction
endif
fori=1toLen(name)
c=Lcase(Mid(name,i,1))
ifInStr("abcdefghijklmnopqrstuvwxyz_-.",c)<=0andnotIsNumeric(c)then
IsValidEmail=false
exitfunction
endif
next
ifLeft(name,1)="."orRight(name,1)="."then
IsValidEmail=false
exitfunction
endif
next
ifInStr(names(1),".")<=0then
IsValidEmail=false
exitfunction
endif
i=Len(names(1))-InStrRev(names(1),".")
ifi2andi3then
IsValidEmail=false
exitfunction
endif
ifInStr(email,"..")>0then
IsValidEmail=false
endif

endfunction
’下面的这段函数人人应当都看的懂,固然你能够修正这段代码,使得即便用户输出XXX@CCC.DDD是毛病的邮件地点,由于DDD不是一个无效域名。
’援用的时分能够如许写
ifIsValidEmail(trim(request("textfield")))=falsethen
response.write"从头填写"
endif
3、考证为空的表单单位
有的信息是请求用户必需填写的,以是不同意为空,因而当用户输出为空的时分必要提醒。
’对为空单位的处置
ifRequest.Form("textfield")=""then
Response.write"填写为空"
endif
4、判别用户输出的是否是一个日期
起首分明日期值格局2002-11-19
’间接判别一个值是不是是日期
ifnotisdate(Request.Form("textfield"))then
Response.write"日期填写堕落"
endif
而我们在计划网站时分常常用三个下拉框来完成年、月、日三个分歧选项,怎样将这三个值接洽起来,而且举行考证呢?
起首固然要创建三个下拉框了,分离定名表单名为date,month,year,然后就是背景的处置了,由于先前我们在前台猎取了date,month,year这三个传送过去的值,以是我们必需把他们毗连起来分解一个变量才干考证和存进数据库。毗连成尺度日期格局表达式能够这幺写:
birthday=trim(Request.Form("year"))&"-"&trim(Request.Form("month"))&"-"&trim(Request.Form("date"))
考证已转换的输出是不是为正当日期可使用isdate函数:
ifnotisdate(birthday)then
response.write"毛病"
endif
5、不同意用户输出某些特别字符
在这里我们假定传送的值是content,我们不同意输出的值是=和%
ifInstr(request("content"),"=")>0orInstr(request("content"),"%")>0
then
response.write"不克不及输出=和%"
endif</p>帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。
若天明 该用户已被删除
沙发
发表于 2015-1-17 16:35:59 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-20 20:16:45 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
地板
发表于 2015-1-29 20:31:09 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
爱飞 该用户已被删除
5#
发表于 2015-2-6 04:08:18 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
小妖女 该用户已被删除
6#
发表于 2015-2-15 12:53:00 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-4 11:30:27 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
分手快乐 该用户已被删除
8#
发表于 2015-3-19 09:05:15 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-20 23:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表