一级棒(Eachfun)
一级棒 - 编程园地 - 源码放送 - [ASP]用户输入验证模块
RSS订阅
[ASP]用户输入验证模块
发表时间:2004-05-31 00:00:00 关键词:编程,源码,下载,ASP

<%
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," ","&nbsp;")
    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
%>

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2008 Eachfun.Com, All Rights Reserved 一级棒网络
苏ICP备05080156号
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!