ASP同一个帐号不能同时登陆的问题(1)

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

简介

有点常识的人都知道本身用asp做这种功能显然有些牵强,因为他不像qq,msn或irc 聊天室那样是即时通讯,他都是靠刷新网页更改最后活动时间来获取用户是否在线的,所以您不要指望下面这片教程有多完美,我也只是把我的思维模式记录下来,有啥不对的地方还请高手们多多指教!

正文

首先我先向大家介绍一下我实现这个效果的思路,如果你看过我的思路后就能理解完全没必要将这篇东西看完……

实现这个功能我只能想到两种方式来实现:

1、数据库+asp

做起来可能会复杂些,但是适合有大量登陆用户的系统里。

2、application

用application对象:如果你做的是大型社区,你可能要为每个登陆id生成一个appliaction,这样做虽然程序上设计会简单些但登陆用户过多及其耗费服务器资源,我这里决不提倡,因为appliaction对象在用户登陆时生成很容易但是要做到真正的随着用户退出系统完全释放掉,到目前我还没看到更好的方法~

Set rs = Server.CreateObject("ADODB.RECORDSET")

sql="SELECT * FROM users where userName = ' "& userName & "' and userPass = ' "& userPass & "'"

rs.Open sql, CONN_TOL8,1,1

IF not rs.eof then

Call isOK(userName) ' 用户名密码正确调用次过程,isOK将会在下面的程序中定制。

else

Response.Write("<a href=javascript:history.go(-1)>用户名或密码错误</a>")

Response.End()

end if

rs.Close

Set rs=Nothing

end if

Sub isOK(userName)

Dim Olip ' 数据库中当前登陆用户名保存的ip

Dim Oltime ' 数据库中当前登陆用户名保存的最后刷新网页的时间,是计算用户是否在线的重要数据。

Dim OLip1 ' 记录当前用户登陆ip,用来区分是否为同一用户的标示

OLip1=Request.ServerVariables("REMOTE_ADDR")'取得提交登陆信息用户的IP

Set ts=Conn_TOL8.execute("Select * FROM onlyLogin WHERE OLname='"& userName & "'")

if not ts.eof then ' 查询数据库是否有此用户的登陆过的信息

OLtime=ts("OLtime")

OLip=ts("OLip")

if OLip1<>OLip and DateDiff("s",OLtime,now()) < maxTime then

'上句判断如果提交登陆用户ip不是数据库中最后纪录的用户ip并且

'用户的最后活动时间和当前时间相隔并没超过规定的秒数则确认此用户当前在线

Response.Write "<a href=javascript:history.go(-1)>此用户目前在线,你无法从其他地方登陆此账号!</a>"

Response.End()

else

'否则的话判定登陆成功付值给session

Session("lgName")=userName

Session("lgPass")=userPass

Response.Redirect "loginOK.asp"

Response.End

end if

else

'如果数据库没有次登陆用户纪录则执行下面的语句

Dim ls

Set ls=Server.CreateObject("ADODB.RECORDSET")

ls.Open"Select * From onlyLogin",CONN_TOL8,2,2

ls.ADDNEW

ls("OLname")=userName

ls("OLip")=OLip1

ls("OLtime")=NOW()

ls.UPDATE

ls.Close

Set ls=Nothing

'判定登陆成功付值给session

Session("lgName")=userName

Session("lgPass")=userPass

Response.Redirect "loginOK.asp"

Response.End

end if

End Sub %>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航