使用QQ号直接登录论坛!
一些论坛开始设立UID(即一简单有序的数字),以帮助用户名过于繁琐者实现简捷登录。
然而UID再简单,也仍然要给用户增添一项记忆负担,不如利用用户脑海中已有的数字ID记忆。
什么数字ID最常用而记忆得最牢固呢?莫过于QQ号了!如果能用QQ号登录论坛,则人性化程度优于另行加记一套UID。
本人仔细琢磨了BBSxp的Access数据库user表UserIM字段(用于存储包括QQ号在内的一大堆即时通讯ID)的特点,决定采用巧妙的近似查询法(like...语句),来在检索中匹配这个恰好位于UserIM字符串之首的QQ号,结果获得成功,避免了从UserIM字段中解拆QQ号这一繁琐过程而使代码极简。增加该功能的修改方法是:
在login.asp文件中找到:
url=Request("url")
username=HTMLEncode(Trim(Request("username")))
userpass=md5(Trim(Request("userpass")))
if username=empty then error("<li>用户名没有输入")
在这段的下边增加:('后的中文系注释,可不必输入)
if IsNumeric(username) then '如果输入的用户名是数字
sql="select username from [user] where UserIM like '"&username&"%'" '就跟数据库中放QQ号的字串比对
set rs=Conn.Execute(sql) '设置过程
if rs.eof then '如果比对完了没有匹配的
set rs=nothing '就结束这一过程
else '否则就是有匹配的
username=rs("username") '就将刚才输入的用户名变值为该QQ号所对应的库中记录的用户名
set rs=nothing
end if
end if
'如果前边输入的用户名不是数字,就跳到这儿继续执行后面程序
呵呵,这QQ号就能起到辅助登录作用啦!
登录者有QQ号就输入QQ号(前提——这QQ号须在注册资料中填过),没QQ号就输入用户名,完全兼容
为便于整段复制粘贴,下面再将去掉注释的这段代码粘在下面:
if IsNumeric(username) then
sql="select username from [user] where UserIM like '"&username&"%'"
set rs=Conn.Execute(sql)
if rs.eof then
set rs=nothing
else
username=rs("username")
set rs=nothing
end if
end if