<%
Sub KillInputErr()
'清除上次检查输入的错误信息,用以下次重新检查
ErrNum=0
strErr="您所填写的内容发生以下错误:"
End Sub
Sub CheckInput(inputtext,errtext,canempty,inputname)
'本程序的功能是检查用户的输入是否合法
'inputtext是用户输入的内容,传递到本程序
'errtext是一个字符串,包含所有不允许的字符串,
'例如不允许输入大于号、小于号、等于号,则为“<>=”
'如果不允许输入半角双引号,要用两个连续的双引号表示一个双引号,
'例如“<>+""”
'canempty为1时表示允许用户不输入,为0表示用户必须输入
'inputname是被检查的字符串所起的作用,如“用户名”、“贴子主题”等
'程序设计by偷猫,http://www.eachfun.com,QQ33751
If canempty=0 and inputtext="" Then
ErrNum=ErrNum+1
strErr=strErr & "\n" & cstr(ErrNum) & ":" & inputname & "必填!"
End If
If len(errtext)=0 then exit sub
for i=1 to len(errtext)
If instr(1,inputtext,mid(errtext,i,1))>0 Then
ErrNum=ErrNum+1
If mid(errtext,i,1)="'" Then
strErr=strErr & "\n" & cstr(ErrNum) & ":" & inputname & "包含单引号!"
ElseIf mid(errtext,i,1)="\" Then
strErr=strErr & "\n" & cstr(ErrNum) & ":" & inputname & "包含(\\)!"
ElseIf mid(errtext,i,1)=" " Then
strErr=strErr & "\n" & cstr(ErrNum) & ":" & inputname & "包含空格!"
Else
strErr=strErr & "\n" & cstr(ErrNum) & ":" & inputname & "包含(" & mid(errtext,i,1) & ")!"
End If
End If
next
End Sub
Function replaceinput(inputtext)
'本程序的功能是将用户输入的内容替换成可以在网页上显示的内容:::
'通常用于用户发贴、跟贴、发表论文等场合:::
inputtext=Replace(inputtext,"&","&")
inputtext=Replace(inputtext," "," ")
inputtext=Replace(inputtext," "," ")
inputtext=Replace(inputtext,"'",""")
inputtext=Replace(inputtext,"""",""")
inputtext=Replace(inputtext,"<","<")
inputtext=Replace(inputtext,">",">")
inputtext=Replace(inputtext,chr(13)&chr(10),"<br>")
replaceinput=inputtext
End Function
Sub Example
'应用举例,下面的例子从客户而接收“登录名”、
'“密码1”、“密码2”、“密码提示问题”和“问题答案”
dim newusernickname,newuserpass1,newuserpass2,newuserquestion,newuseranswer
newusernickname=request.form("newusernickname")
newuserpass1=request.form("newuserpass1")
newuserpass2=request.form("newuserpass2")
newuserquestion=request.form("newuserquestion")
newuseranswer=request.form("newuseranswer")
Call KillInputErr()'清除以前验过的错误信息
Call CheckInput(newusernickname," |<>%=""'()[],.\/?*;",0,"登录名")
'以上为验证登录名,不允许的字符有:空格、竖线、HTML字符、
'ASP字符,单双引号、括号、逗号、句号、斜杠、星号、问号
If newuserpass1<>newuserpass2 Then
ErrNum=ErrNum+1
strErr=strErr & "\n" & "两次输入的密码不一致!"
End If
Call CheckInput(newuserpass1," |<>%=""'()[],.\/?*;",0,"密码")
'以上为验证登录名,不允许的字符有:空格、竖线、HTML字符、
'ASP字符,单双引号、括号、逗号、句号、斜杠、星号、问号
newuserquestion=replaceinput(newuserquestion)'替换“密码提示问题”中的字符
Call CheckInput(newuseranswer,"'""",0,"问题答案")
'以上为验证问题答案,不允许的字符有:单引号、双引号
If ErrNum>0 Then
%>
<script language=javascript>
<!--
alert('<%=strErr%>');
history.go(-1);
-->
</script>
<%
Response.End()
End If
End Sub
%>
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
