1、在数据库中设置一字段标志用户是否在线,比如:online
2、在登陆页里面做两件事,一是判断session("username")是否为空,如果不为空,则设置session("username")值中的这个用户的online字段为0(表示不在线);然后将现在登陆的这个用户设置为在线(设置online为1)
3、关于非正常退出,比如关闭了浏览器就跑了在global.asa中处理,如下代码
Sub Session_OnEnd
Application.Lock
Application("ActiveUsers")=Application("ActiveUsers")-1
Application.unLock
if session("tbuser")<>"" then
dim conn
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "driver={sql server};server=127.0.0.1;uid=***;pwd=***;database=***;"
sql="update Member_System set ms_sysonline=0 where ms_userid='"&session("tbuser")&"'"
conn.execute(sql)
conn.close
set conn=nothing
end if
End Sub
4、为了保险,再加一条,目的是重新启动服务器以后设置所有用户在线为0,目的是怕重新启动服务器的时候有用户在先。代码如下:
Sub Application_OnStart
Application("activeUsers")=0
dim conn
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "driver={sql server};server=127.0.0.1;uid=***;pwd=***;;database=***;;"
sql="update Member_System set ms_sysonline=0 where ms_sysonline=1"
conn.execute(sql)
conn.close
set conn=nothing
End Sub