Global.asa对session及application的超时做设定
可实现用户关闭窗口或掉电时的在线人数的响应
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
application("online")=0
for i=1 to 20
application("user" & i)=""
next
End Sub
Sub Session_OnStart
application("online")=application("online")+1
Session.timeout=120 '用户session超时设置为2分钟
End Sub
Sub Session_OnEnd ''实现用户关闭窗口或掉电时的在线人数的响应
'when a user timeout then empty his application("user(i))")
首先在用户登录进入时,要生成一个Session("name")字段的值,或是cookies("club")("name")的值,以便于在进行操作时,让SQL在社区中任意页面都知道是哪个用户的记录。接着更新用户的下online字段和logintime字段,语句如下:
conn.execute("Update users set online=1,logintime='"&now&"' where name='"&session("name")&"'")
这条语句的作用在于当用户登录时,就把用户在线设为真,再把当前操作时间设为现在。其次在用户进行贴子或文章浏览时,也要用此语句,因为这样才可能更加的准确些。
在这些语句的后面再加上一句。
conn.execute("Update users set online=0 where diffdate(""n"",logintime,'"&now()&"')>10")
这条语句的作用表示把用户最后操作时间和当前时间相比较,如果大于10分钟的话,就会把这些用户都设为离线。