如何限制同一用户名同时登陆

姜姗姗姜姗姗

姜姗姗姜姗姗

2016-02-19 12:06

下面,图老师小编带您去了解一下如何限制同一用户名同时登陆,生活就是不断的发现新事物,get新技能~
这个问题我的办法是,用户有个活跃时间间隔问题。超过这个活跃时间间隔的则可以认为是离线,后者可以登陆 ,如果无后者登陆,但并不是说前者就需要重新登陆了。因为他的session还在的。只能是这个时间设置的越小越精确,也是不能做到绝对的。
代码贴出来给楼主参考下。
Function CheckOnline()DIM IP,rsPrv,Sql,PrvDbStatePrvDbState = FalseIf DBSTATE = False ThenDbOpen()PrvDbState = TrueEnd IfSet rsPrv=Server.CreateObject("ADODB.Recordset")If Session("UserName") = "" thenSql="select * from [Online] where SessionID='"& Session.Sessionid &"'"rsPrv.Open Sql,Conn,1,3If rsPrv.Eof thenrsPrv.AddNewrsPrv("SessionID") = Session.SessionIDrsPrv("GroupChargeLv") = -1rsPrv("LastActTime") = Now()rsPrv("UserIP") = GetIPrsPrv("OnLineTime") = 0rsPrv("UserWhere") = Request.ServerVariables("HTTP_REFERER")ElsersPrv("UserWhere") = Request.ServerVariables("HTTP_REFERER")rsPrv("OnLineTime") = rsPrv("OnLineTime") + DateDiff("n",rsPrv("LastActTime"),Now())rsPrv("LastActTime") = Now()End IfrsPrv.UpdatersPrv.Close()'response.Write "notlogin"Else'response.Write "logined"Sql="select * from [Online] where UserName='"& Session("UserName") &"'"rsPrv.Open sql,Conn,1,3If rsPrv.Eof thenrsPrv.AddNewrsPrv("SessionID") = Session.SessionIDrsPrv("UserName") = Session("UserName")rsPrv("GroupChargeLv") = Session("GroupChargeLv")rsPrv("LastActTime") = Now()rsPrv("OnLineTime") = 0rsPrv("UserIP")= GetIPrsPrv("UserWhere") = Request.ServerVariables("HTTP_REFERER")ElseIf rsPrv("SessionID")  Session.SessionID And Application("LoginSet")(1) = False ThenInfoTo "LoginOut.asp","该帐户已在其他地方登陆,网站设置1个ID只能有1个登陆n你可以稍候尝试登陆。"Response.End()End IfrsPrv("UserWhere") = Request.ServerVariables("HTTP_REFERER")rsPrv("OnLineTime") = rsPrv("OnLineTime") + DateDiff("n",rsPrv("LastActTime"),Now())rsPrv("LastActTime")=Now() End IfrsPrv.UpdatersPrv.Close()End IfSet rsPrv = NothingIf DateDiff("s",Application("OnLineLastDelete"),Now())  Int(Application("DELETEONLINEDIFF")) ThenApplication.Lock()Application("OnLineLastDelete") = nowApplication.UnLock()Conn.ExeCute("delete from [Online] where datedIff('s',LastActTime,Now())"&Int(Application("CHECKONLINEDIFF") &"")) '删除x秒没有活动的访客End IfIf PrvDbState = True Then DbClose()End Function
展开更多 50%)
分享

猜你喜欢

如何限制同一用户名同时登陆

Web开发
如何限制同一用户名同时登陆

淘宝用户名怎么改 如何修改淘宝用户名

应用软件
淘宝用户名怎么改 如何修改淘宝用户名

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ssh的用户登陆限制

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
ssh的用户登陆限制

如何设置同一用户同一时间只能有一个人登陆啊??

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
如何设置同一用户同一时间只能有一个人登陆啊??

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

同一个帐号不能同时登陆的问题

Web开发
同一个帐号不能同时登陆的问题

Mac电脑如何修改用户名

电脑入门
Mac电脑如何修改用户名

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

SQL语句的基本语法

SQL语句的基本语法

Windows 8 中如何关闭开始中打开的程序

Windows 8 中如何关闭开始中打开的程序
下拉加载更多内容 ↓