第三种方法和这个类似,只不过是根据用户的 IP 来判断在线人数,这样就避免了三面的特殊情况,而且不需要用 session 哦!
首先还是建一个数据库:count.mdb,包含一个表:count,表中字段为:
ID 自动编号
ip 文本
posttime 日期/时间
具体实现代码如下,文件名为 online.asp:
ASP中统计在线人数的方法花样繁多,我也搞不清楚有几种 ^_^,偶这里介绍三种先,如有错误,欢迎各位批评指正,还有好方法,敬请补充!
首先介绍一种最简单的方法,利用 Application、 session 和 Global.asa ,因为当用ASP制作的网页都存放与WWW服务器的基点目录并且WWW服务器启动之后,每当有对ASP文件的HTTP请求时,服务器都会去读取基点目录下的Global.asa文件。所以可以在 Global.asa 文件中包含如下代码:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
' 当服务器开启时,设置用户计数器为0
Application("ActiveUsers") = 0
End Sub
Sub Session_OnStart
' 设置Session对象的有效时间为20分钟(也可以更长,但是越长对服务器的资源占用越多)
Session.Timeout = 20
' 当开始一个Session时用户计数器加1
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
' 当结束一个Session时用户计数器减1
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub
</SCRIPT>
实际上,一般的在线人数是指一个时段内的访客人数统计,时间的长短是由设计者设定的。
在这个时段内,各个不同ip访问本站点的总数,就是当前的线上人数。在ASP中,使用session对象来实现统计,实现代码如下:
golobal.asa文件
〈script language="vbscript"runat="server"〉
sub session—onstart
application("online")=application("online")+1
end sub
sub session—onend
application("online")=application("online")-1
end sub
sub application—onstard
application("online")=0
end sub
sub application—onend
application("online")=0
end sub
〈/script〉
Processed in 0.9531616 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
2005-12
2005-4
用户中心
日志分类

最新日志
最新评论
统计信息






友情链接