欢迎光临

木子屋

标题: Dvbbs在用户注册时缺少对其他整合系统用户名检测解决方法

作者: dnawo

日期: 2008-01-23 11:16 AM

分类: 程序修改

内容: 一、问题
Dvbbs在用户注册时没有对其他整合系统用户名进行检测，这会导致用系统中存在的用户名进行注册时其他系统注册成功而动网注册失败，结果是其他系统中存在用户名一样的多个用户！这个问题在Dvbbs7.1、8.0、8.1中均存在。
二、分析
一个完整的注册流程应是：
其他系统用户名检测→动网用户名检测→其他系统用户注册→动网用户注册
当然，也可以省略掉第一个步骤：
动网用户名检测→其他系统用户注册→动网用户注册
但是动网现在的注册步骤是：
其他系统用户注册→动网用户名检测→动网用户注册
可以说流程存在问题，也可以说缺少了其他系统的用户名检测。
三、解决方法
打开reg.asp，找到reg_3函数，将系统整合注册部分代码移到动网用户名检测之后即可，修改结果如下(红色部分代码移到了现在的位置)：
复制内容到剪贴板 程序代码Rs.Open Sql,Conn,1,3
If Not Rs.Eof Then
If Request("Forum_Passport")<>"" And Cint(Dvbbs.Forum_Setting(24))=1 Then
Response.redirect "showerr.asp?ErrCodes=<li>您填写的用户名已经被注册或者已经有用户使用了您填写的电子邮件地址。<li>或者您选择了填写了论坛通行证帐号，但所使用的通行证在本论坛已经被使用，您可以选择使用该<a href=login.asp>通行证登录论坛</a>。&action=OtherErr"
ElseIf Request("Forum_Passport")<>"" Then
Response.redirect "showerr.asp?ErrCodes=<li>您填写的用户名已经被注册。<li>或者您选择了填写了论坛通行证帐号，但所使用的通行证在本论坛已经被使用，您可以选择使用该<a href=login.asp>通行证登录论坛</a>。&action=OtherErr"
ElseIf Cint(Dvbbs.Forum_Setting(24))=1 Then
Response.redirect "showerr.asp?ErrCodes=<li>您填写的用户名已经被注册或者已经有用户使用了您填写的电子邮件地址。&action=OtherErr"
Else
Response.redirect "showerr.asp?ErrCodes=<li>您填写的用户名已经被注册。&action=OtherErr"
End If
Exit Sub
Else
'-----------------------------------------------------------------
'系统整合
'-----------------------------------------------------------------
Dim DvApi_Obj,DvApi_SaveCookie,SysKey
If DvApi_Enable Then
'SysKey = Md5(UserName&DvApi_SysKey,16)
Set DvApi_Obj = New DvApi
'DvApi_Obj.NodeValue "syskey",SysKey,0,False
DvApi_Obj.NodeValue "action","reguser",0,False
DvApi_Obj.NodeValue "username",UserName,1,False
Md5OLD = 1
SysKey = Md5(DvApi_Obj.XmlNode("username")&DvApi_SysKey,16)
Md5OLD = 0
DvApi_Obj.NodeValue "syskey",SysKey,0,False
DvApi_Obj.NodeValue "password",pass2,0,False
DvApi_Obj.NodeValue "email",UserEmail,1,False
DvApi_Obj.NodeValue "question",quesion,1,False
DvApi_Obj.NodeValue "answer",Request.form("answer"),1,False
DvApi_Obj.NodeValue "truename",Request.Form("realname"),1,False
DvApi_Obj.NodeValue "gender",sex,0,False
DvApi_Obj.NodeValue "birthday",birthday,0,False
DvApi_Obj.NodeValue "qq",Qq,1,False
DvApi_Obj.NodeValue "msn",Request.form("msn"),1,False
DvApi_Obj.NodeValue "mobile",Request.Form("userphone"),1,False
DvApi_Obj.NodeValue "homepage",Request.form("homepage"),1,False
DvApi_Obj.SendHttpData
If DvApi_Obj.Status = "1" Then
Response.redirect "showerr.asp?ErrCodes="& DvApi_Obj.Message &"&action=OtherErr"
Exit Sub
Else
DvApi_SaveCookie = DvApi_Obj.SetCookie(SysKey,UserName,Password,Request("usercookies"))
End If
Set DvApi_Obj = Nothing
End If
'-----------------------------------------------------------------
Rs.AddNew
UserJoinTime = Now()
Rs("UserName")=username
Rs("UserPassword")=password
Rs("UserEmail")=useremail
Rs("Userclass")=userclass
Rs("TitlePic")=titlepic
Rs("UserQuesion")=quesion
Rs("UserAnswer")=answer
Rs("TruePassWord")=TruePassWord
Rs("UserIM")=UserIM
If Request.Form("Signature")<>"" Then Rs("UserSign")=Dvbbs.Htmlencode(Trim(Request.Form("Signature")))
Rs("UserPost")=0
If Dvbbs.Forum_Setting(25)="1" Then
Rs("UserGroupID")=5
Else
Rs("UserGroupID")=Dvbbs.UserGroupID
End If
Rs("Lockuser")=0
Rs("UserSex")=sex
If birthday<>"" Then rs("UserBirthday")=birthday
'Rs("UserGroup")=Request.form("UserGroup")
Rs("JoinDate")=UserJoinTime
If Request.form("myface")<>"" Then
Rs("UserFace")=replace(Dv_FilterJS(face),"'","")
Else
Rs("UserFace")=replace(Dv_FilterJS(face),"'","")
End If
Rs("UserWidth")=Width
Rs("Usertoday")="0|0|0|0|0"
Rs("UserHeight")=height
Rs("UserLogins")=1
Rs("LastLogin")=UserJoinTime
Rs("userWealth")=dvbbs.Forum_user(0)
Rs("userEP")=dvbbs.Forum_user(5)
Rs("usercP")=dvbbs.Forum_user(10)
Rs("UserInfo")=userinfo
Rs("UserSetting")=usersetting
Rs("UserPower")=0
Rs("UserDel")=0
Rs("UserIsbest")=0
Rs("UserMoney")=0
Rs("UserTicket")=0
Rs("UserFav")="陌生人,我的好友,黑名单"
Rs("IsChallenge")=0
Rs("UserHidden")=0
Rs("UserLastIP")=Dvbbs.UserTrueIP
Rs.Update
Dvbbs.Execute("Update Dv_Setup Set Forum_UserNum=Forum_UserNum+1,Forum_lastUser='"&Dvbbs.HtmlEncode(username)&"'")

End If

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 6.828 ms

返回

标题: Dvbbs在用户注册时缺少对其他整合系统用户名检测解决方法

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 6.828 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 7.203 ms

返回