BBSXP7.0B2 用户即时通讯号码和论坛密码登陆论坛
解决的困难
问题:新注册用户注册了与旧用户相同的即时通讯号码,使论坛用户用即时通讯号登陆论坛容易产生登陆到别人账号的问题,造成帐号的风险
解决:在用户注册和修改联系信息都不能填写论坛已有的即时通讯号,也就是说,即使通讯在论坛唯一,密码相同都不怕了
由于本人前两天提供的代码不行,经过不断的尝试终于成功了,希望大家可以用上!
另,本修改应和wwwbigbug的“用QQ登陆论坛”结合使用,下面的修改为“所用的即时通讯登陆”,与wwwbigbug的略有不同
login.asp文件
找到
if username=empty then error("<li>用户名没有输入!")
下面加入
if IsNumeric(username) then
sql="select username,userpass from [bbsxp_users] where (UserIM like '"&username&"%' or UserIM like '%"&username&"%' or UserIM like '%"&username&"') and userpass='"&userpass&"'"
set rs=Conn.Execute(sql)
if rs.eof then
set rs=nothing
else
username=rs("username")
set rs=nothing
end if
end if
CreateUser.asp文件
找到
password=Trim(Request.Form("password"))
Userpass2=Trim(Request.Form("Userpass2"))
UserMail=HTMLEncode(Request.Form("UserMail"))
Userhome=HTMLEncode(Request.Form("Userhome"))
PasswordQuestion=HTMLEncode(Request.Form("PasswordQuestion"))
PasswordAnswer=HTMLEncode(Request.Form("PasswordAnswer"))
Userface=HTMLEncode(Request.Form("Userface"))
UserSex=HTMLEncode(Request.Form("UserSex"))
birthday=HTMLEncode(Request.Form("birthday"))
换成
password=Trim(Request.Form("password"))
Userpass2=Trim(Request.Form("Userpass2"))
UserMail=HTMLEncode(Request.Form("UserMail"))
Userhome=HTMLEncode(Request.Form("Userhome"))
PasswordQuestion=HTMLEncode(Request.Form("PasswordQuestion"))
PasswordAnswer=HTMLEncode(Request.Form("PasswordAnswer"))
Userface=HTMLEncode(Request.Form("Userface"))
UserSex=HTMLEncode(Request.Form("UserSex"))
birthday=HTMLEncode(Request.Form("birthday"))
qq=HTMLEncode(Request.Form("qq"))
icq=HTMLEncode(Request.Form("icq"))
uc=HTMLEncode(Request.Form("uc"))
aim=HTMLEncode(Request.Form("aim"))
msn=HTMLEncode(Request.Form("msn"))
yahoo=HTMLEncode(Request.Form("yahoo"))
找到
Rs("UserIM")=""&HTMLEncode(Request("qq"))&"\"&HTMLEncode(Request("icq"))&"\"&HTMLEncode(Request("uc"))&"\"&HTMLEncode(Request("aim"))&"\"&HTMLEncode(Request("msn"))&"\"&HTMLEncode(Request("Yahoo"))&""
换成
rs("UserIM")=""&qq&"\"&icq&"\"&uc&"\"&aim&"\"&msn&"\"&Yahoo&""
找到
If not conn.Execute("Select id From [BBSXP_Users] where username='"&username&"'" ).eof Then error2("此用户名已经被别人注册了")
下面加入
'禁止用户注册已有用户注册了的即时通讯号码开始----------Enger
if qq<>"" or uc<>"" or icq<>"" or msn<>"" or aim<>"" or Yahoo<>"" then
If not conn.Execute("select id from [BBSXP_Users] where UserIM like '"&qq&"%' and UserIM like '%"&icq&"%' and UserIM like '%"&uc&"%' and UserIM like '%"&aim&"%' and UserIM like '%"&msn&"%' and UserIM like '%"&Yahoo&"'").eof Then error2("此即时通讯号码已经被别人注册了")
end if
'禁止用户注册已有用户注册了的即时通讯号码结束----------Enger
EditProfile.asp文件
找到
rs("UserIM")=""&HTMLEncode(Request("qq"))&"\"&HTMLEncode(Request("icq"))&"\"&HTMLEncode(Request("uc"))&"\"&HTMLEncode(Request("aim"))&"\"&HTMLEncode(Request("msn"))&"\"&HTMLEncode(Request("Yahoo"))&""
换成
'禁止用户注册已有用户注册了的即时通讯号码开始----------Enger
qq=HTMLEncode(Request.Form("qq"))
icq=HTMLEncode(Request.Form("icq"))
uc=HTMLEncode(Request.Form("uc"))
aim=HTMLEncode(Request.Form("aim"))
msn=HTMLEncode(Request.Form("msn"))
yahoo=HTMLEncode(Request.Form("yahoo"))
if qq<>"" or uc<>"" or icq<>"" or msn<>"" or aim<>"" or Yahoo<>"" then
If not conn.Execute("select id from [BBSXP_Users] where UserIM like '"&qq&"%' and UserIM like '%"&icq&"%' and UserIM like '%"&uc&"%' and UserIM like '%"&aim&"%' and UserIM like '%"&msn&"%' and UserIM like '%"&Yahoo&"'").eof Then error2("此即时通讯号码已经被别人注册了")
end if
rs("UserIM")=""&qq&"\"&icq&"\"&uc&"\"&aim&"\"&msn&"\"&Yahoo&""
'禁止用户注册已有用户注册了的即时通讯号码结束----------Enger
好,到这里全文结束了,完美的实现用用户的即时通讯号码和论坛密码就可登陆论坛,非常方便,建议用户使用。
登录后方可回帖