回 帖 发 新 帖 刷新版面

主题:这个怎么改

<% 
'检查用户名格式是否正确
Function CheckUserName(uname)
    CheckUserName = True
    Dim count,lUserName,AscValue
    Dim sstr(15)

    lUserName = LCase(uname)
    
    '提取每一个字符,存储到数组中
    count = Len(lUserName)
    For i=1 To count
        sstr(i) = Mid(lUserName,i,1)
    Next
    
    '依次检验每个字符,必须为字母、数字、或者下划线
    For i=1 To count
        AscValue = Asc(sstr(i))
        If (AscValue < 97 Or AscValue > 122) And (AscValue < 48 Or AscValue > 57) And AscValue <> 95 Then
            CheckUserName = False
            Exit For
        End If
    Next
End Function

'检查密码格式是否正确
Function CheckPass(upass)
    CheckPass = True
    Dim count,lupass,AscValue
    Dim sstr(15)

    lupass = LCase(upass)

    '提取每一个字符,存储到数组中
    count = Len(lupass)
    For i=1 To count
        sstr(i) = Mid(lupass,i,1)
    Next
    
    '依次检验每个字符,必须为字母或者数字
    For i=1 To count
        AscValue = Asc(sstr(i))
        If (AscValue < 97 Or AscValue > 122) And (AscValue < 48 Or AscValue > 57) Then
            CheckPass = False
            Exit For
        End If
    Next
End Function

    '定义变量,以便获取表单参数
    Dim UserName,Password,RealName,shengri,tel,add,sex,UserClass
  
    UserName = Request.Form("name")'用户名
    Password = Request.Form("passwd")'用户密码
    RealName = Request.Form("realname")'用户姓名
    shengri = Request.Form("shengri")'用户出生日期
    tel = Request.Form("tel")'用户电话
    add = Request.Form("add")'用户地址
    sex = Request.Form("sex")'用户电话
    UserClass = Request.Form("Authority")'用户级别
  
    '对所获得的表单参数进行有效性验证
    '用户名不能为空,且只能由有效字符组成
    If UserName = Empty Then
        Response.Redirect "reg.asp?ErrMsg=请填写用户名"
        Response.End()
    End If
  
    '用户帐号不可以超过 15 个字符
    If Len(UserName) >15 Then
        Response.Redirect "reg.asp?ErrMsg=用户名不可以超过 15 个字符"
        Response.End()
    End If
      
    '用户帐号格式必须正确
    If Not(CheckUserName(UserName)) Then
          Response.Redirect "reg.asp?ErrMsg=用户帐号应该由英文字母,数字或下划线组成"
        Response.End()
    End If
  
    '密码不能为空
    If Password = Empty Then
          Response.Redirect "reg.asp?ErrMsg=请填写用户密码"
        Response.End()
    End If
    
    '密码不可以超过 15 个字符
    If Len(Password) > 15 Then
        Response.Redirect "reg.asp?ErrMsg=用户密码不可以超过 15 个字符"
        Response.End()
    End If
      
    '密码格式必须正确
    If Not(CheckPass(Password)) Then
          Response.Redirect "reg.asp?ErrMsg=用户密码由字母和数字组成"
        Response.End()
    End If
      
    '真实姓名必填
    If RealName = Empty Then
          Response.Redirect "reg.asp?ErrMsg=请填写真实姓名"
        Response.End()
    End If
      
    'shengri必填
    If shengri = Empty Then
          Response.Redirect "reg.asp?ErrMsg=请填写出生日期"
        Response.End()
    End If
      
    '联系电话必填
    If tel = Empty Then
          Response.Redirect "reg.asp?ErrMsg=请填写联系电话"
        Response.End()
    End If
    'add必填
    If add = Empty Then
          Response.Redirect "reg.asp?ErrMsg=请填写联系地址"
        Response.End()
    End If
    
    
    '定义数据库连接对象,记录集对象,字符串对象
    Dim objConn,objRS,strSQL
    
    '初始化数据库连接
    DB="./database/Member.mdb"
    Set objConn = Server.CreateObject("ADODB.Connection")                          
    objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DB)
    '打开数据库连接
    objConn.Open
        
    'SQL语句
    strSQL = "SELECT * FROM MEMBER WHERE NAME='" & UserName & "'"
  
    '打开数据集
    Set objRS = Server.CreateObject("ADODB.Recordset") 
    objRS.Open strSQL, objConn, 1, 3, 1
  
    '如果数据库为空,则表示用户名不存在,可以注册
    If objRS.EOF Then
            '添加普通用户
            objRS.AddNew Array("NAME","PASSWORD","REALNAME","shengri","tel","add","sex"), _
                 Array(UserName, Password,RealName,shengri,tel,add,sex)
                     '更新数据库,插入数据
        objRS.Update
        End If
    
    

        '关闭连接
        objRS.Close

        '重新打开数据库
        objRS.Open strSQL, objConn, 1, 3, 1
    
        '获取用户信息,并将这些信息写入Session
        If Session("IsPassed") <> True Then
            Session("Id") = CStr(objRS.Fields("ID"))
            Session("Name")=UserName
            Session("IsPassed") = True
            If UserClass = "2" Then    
                Session("IsAdmin") = True
                Session("Class") = "2" 
            Else
                Session("IsAdmin") = False
                Session("Class") = "9"
            End If
        End If 
    
        '关闭数据集和数据库连接,并释放对象
        objRS.Close         
        Set objRS = Nothing 
        objConn.Close         
        Set objConn = Nothing

        '重导向到系统主页面
        Response.Redirect "index.asp"
        Response.End()

    '提示用户所选择的帐号已存在,并退回上一页
%>
    <html>
    <body>
    <script language="vbscript">
    <!-- 
      Window.alert "您所使用的帐号已经被他人注册了,请使用其他帐号。"
      History.back
    -->
    </script>
    </body>
    </html>

回复列表 (共5个回复)

沙发


什么怎么改,什么错误啊?

板凳


无法显示网页 
试图访问的网页出现问题,无法显示。 

--------------------------------------------------------------------------------

请尝试执行下列操作:

单击刷新按钮,或稍后重试。

打开 localhost 主页,然后查找与所需信息相关的链接。 
HTTP 错误 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(用于支持人员)

错误类型:
Provider (0x80020005)
类型不匹配。
/w/Activities/addMember.asp, 第 143 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) 

网页:
POST 82 ??? /w/Activities/addMember.asp

POST Data:
name=q&realname=q&passwd=q&shengri=q&tel=q&add=q&sex=%C4%D0&BtnSubmit=%CC%E1%BD%BB 

时间:
2008年5月17日, 16:05:12 


详细信息:
 

3 楼


/w/Activities/addMember.asp, 第 143 行

143行具体是哪行?

4 楼

objRS.AddNew Array("NAME","PASSWORD","REALNAME","shengri","tel","add","sex"), _
                 Array(UserName, Password,RealName,shengri,tel,add,sex)

5 楼


检查一下从表单获取到的值,是否与对应的数据库字段数据类型一致。

如:tel = Request.Form("tel") 获取到的tel的数据类型是否与数据库中tel字段的数据类型一致。

我来回复

您尚未登录,请登录后再回复。点此登录或注册