关于在线人数统计的问题

swlswl27 2003-05-23 01:51:16
在公司局域网中作了一个网页,其中有在线人数统计,可是公司电脑中心不给将我的global.asa中的代码加入到服务器的global.asa中,所以我的在线人数统计实现不了了,请高手指点,不用global.asa怎么实现在线人数统计!
在线等待,马上给分!
...全文
32 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
N1rvana 2003-05-23
  • 打赏
  • 举报
回复
可以考虑使用数据库实现,方便而且可以实现更多的功能(像动网等论坛那种在线统计)。
具体的做法是在数据库中建一个表online,里面有以下主要字段:IPid(用于存放用户IP作为唯一性标识),Username(用于存放用户名),startime(用户登录时间),lastime(用户最后操作时间)

具体的实现代码可以去参考动网先锋BBS
swlswl27 2003-05-23
  • 打赏
  • 举报
回复
cdsun:
在窗口的unload事件中这样作行吗?
application.lock();
application("user")=totaluser.substring(0,(totaluser.length-3));
application.unlock();
zhuyngjie 2003-05-23
  • 打赏
  • 举报
回复
假定INDEX。HTM为框架网页,包含ID=LEFT,ID=TOP和ID=BOTTOM的三个框架
1、做个统计页面USERNUM。ASP
<p>正在统计数据。。。</p>
<%
user=request.querystring("user")
if user=0 then '如果离开则人数-1
application.lock
application("num")=application("num")-1
application.unlock
response.write "<script>self.close();</script>"
elseif user=1 then '如果进入则+1
application.lock
application("num")=application("num")+1
application.unlock
end if
%>

2、在框架页面中如(INDEX。HTM)嵌入USERNUM。ASP
<body onbeforeunload="window.open('usernum.asp?user=0','num','menubar=no')">
......
<iframe src="usernum.asp?user=1" frameborder=0 width=0 height=0></iframe>
3、在需要显示人数的页面(假定在LEFT显示)中加入
<div id=num><%=application("num")%></div>
4、设定需要更新数据的页面(如BOTTOM)
function tj(){
top.left.num.innerHTML=<%=application("num")%>;
}
<body onload="tj()">
完毕,这只是一个例子,具体应用可以灵活,另外,为什么当离开时要WINDOW。OPEN USERNUM。ASP呢?因为如果同样放在IFRME中,窗口关得太快,USERNUM。ASP页面来不及装载就关掉了无法减少人数
cdsun 2003-05-23
  • 打赏
  • 举报
回复
等走的时候你就减去以个阿
swlswl27 2003-05-23
  • 打赏
  • 举报
回复
application("user")这个变量一直在加啊,这不成计数器了?
swlswl27 2003-05-23
  • 打赏
  • 举报
回复
好,我现在就试试!谢谢!
zhuyngjie 2003-05-23
  • 打赏
  • 举报
回复
不用Golobal.asa和session实现在线人数统计
实现在线人数统计最常用的方法就是golobal.asa结合session做,但这种方法有两个不利:
1、每个session要占用12k的服务器内存空间,为了人数+1就要付出12k内存的代价。
2、golobal.asa要放在网站的根目录下才会起作用,而且根目录只能有一个golobal,矛盾突出。
为此,有一种使用cookie和application在asp文件中实现在线统计的方法,欢迎批评指正,共同探讨:

第一步:做一个框架,包含隐藏框架(count.asp)

第二步:编写count.asp
<%
user=request.cookies("21bbsusername")
totaluser=application("user")
if instr(totaluser,user)=0 then
application.lock
application("user")=totaluser&";"&user
application.unlock
end if
%>
<html>
<head>
<meta http-equiv="refresh" content="2">
</head>
<body>
</body>
</html>

第三步:显示
user=split(application("user"),";")
num=ubound(user)
response.write num


NavyBlue 2003-05-23
  • 打赏
  • 举报
回复
你可以在你的目录下建一个global.asa

做一个登陆窗口和浏览按钮
访问网页必须登陆或点击浏览

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧