也讨论一下ASP在线人数统计(一)

ASP中统计在线人数的方法花样繁多,我也搞不清楚有几种 ^_^,偶这里介绍三种先,如有错误,欢迎各位批评指正,还有好方法,敬请补充!

首先介绍一种最简单的方法,利用 Application、 session 和 Global.asa ,因为当用ASP制作的网页都存放与WWW服务器的基点目录并且WWW服务器启动之后,每当有对ASP文件的HTTP请求时,服务器都会去读取基点目录下的Global.asa文件。所以可以在 Global.asa 文件中包含如下代码:

‘ 当服务器开启时,设置用户计数器为0
Application(“ActiveUsers”) = 0
End Sub
Sub Session_OnStart

‘ 设置Session对象的有效时间为20分钟(也可以更长,但是越长对服务器的资源占用越多)
Session.Timeout = 20

也讨论一下ASP在线人数统计(二)

第三种方法和这个类似,只不过是根据用户的 IP 来判断在线人数,这样就避免了三面的特殊情况,而且不需要用 session 哦!
首先还是建一个数据库:count.mdb,包含一个表:count,表中字段为:

ID 自动编号
ip 文本
posttime 日期/时间

具体实现代码如下,文件名为 online.asp:
[#afdream.com#]

<%
‘———定义变量
dim rs
dim ip
dim timeouted
dim x
dim conn
dim dbpath
‘———定义变量结束

‘———建议数据库链接
set conn=server.createobject(“adodb.connection”)
DBPath = Server.MapPath(“count.mdb”)

用ASP实现在线人数统计

实际上,一般的在线人数是指一个时段内的访客人数统计,时间的长短是由设计者设定的。
在这个时段内,各个不同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>