网上有很多关于在线名单的代码,我参考一些书籍,使用dictionary纪录在线用户名单
dictionary(字典)是scripting的对象,因为dictionary在Session_Onstart之前创建才能纪录,所以在Global.asa中创建。
在Session_Onstart时,由于用户未登陆,因此在Session_Onstart这里只能把在线用户人数加1,然后在用户登陆社区时再把用户名写入dictionary,用一个页面online.asp显示在线用户,超时或用户退出时,把dictionary中的用户名去掉。
下面给出上文提到的代码
********************Global.asa******************
<object runat=server scope=application id=onlineusername progid="scripting.dictionary">
</object>
<script language=vbscript runat=server>
Sub Session_Onstart
Session("flag")=0
Session.timeout=20
application.lock
application("usernumber")=application("usernumber")+1
application.unlock
End Sub
Sub Session_OnEnd
onlineusername.remove session("loginame")
application("usernumber")=application("usernumber")-1
End Sub
</script>
check.asp,用户登陆社区检测文件,这里只给出把用户名加入dictionary片断
******************check.asp********************
*****************online.asp*******************
用户退出时直接用session.abandon立即执行Sub Session_OnEnd中的代码,把用户名从dictionary中去掉。