ASP制作在线人数统计实例

作者:无名 - ASP基础 -
我们先新建一个ACCESS数据库

内容为

表名:zai

字段为

1.ip

2.time

建立一个文件为index.asp

然后就如下程序!

<%
'===================================================================================================
'
'******************** 冰翎在线人数统计程序 V2.0 ******************************
'
' 本站程序由 『冰翎工作室』--冰淇淋剑客 独立制作!请尊重本人的劳动成果
'  
' 『冰翎工作室』─━╃→用实力打造个性
'
'* 作者:冰淇淋剑客  
'* 网站:http://www.blbcn.com  
'* 电子邮件:bingqilinjianke@163.com  
'* QQ:68156987
'* 住址:江苏无锡
'******************************************************************************
'
' 版权所有·抄袭挪用必究
'
'===================================================================================================


'---------定义变量
dim rs
dim ip
dim timeout
dim x
dim conn
dim dbpath
'---------定义变量结束

'---------建议数据库链接
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("zai.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
'---------建立数据库链接完成

'---------新建数据库RS对象
set rs = server.createobject("adodb.recordset")
'---------建立数据库RS对象完成

'---------读取客户端IP地址
ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") '若是对方使用的是代理服务器上网的话,用Request.ServerVariables("HTTP_X_FORWARDED_FOR")可以得到对方的真实IP,若对方不是通过代理服务器上网的话,则IP的值为空
If ip = "" Then ip = Request.ServerVariables("REMOTE_ADDR") '如果IP的值为空,则得到他的本地客户端地址
'---------IP读取完毕

'---------读出数据库内近20分钟所加入的新内容数,group by ip-表IP值相同的记作1
sql="select ip from zai where time >= dateadd('n',-20,now()) group by ip"
rs.Open sql,conn,1,1
zai=rs.RecordCount
rs.Close
'---------得到在线人数值

'---------查看数据库中是否已经有相同的值,没有则 x="yes"有则x="no"
sql="select ip from zai where ip='" & ip & "'"
rs.Open sql,conn,1,1
if rs.eof and rs.bof then
x="yes"
else
x="no"
end if
rs.close
'--------判断完毕

'--------如果数据库中没有相同的值则加入一个新值
if x="yes" then'   如果没有这个IP则增加一条记录
sql="select top 1 * from zai"
rs.Open sql,conn,1,3
rs.AddNew
rs("ip")=ip
rs("time")=now()
rs.update
rs.close
else   '如果有这个IP则把时间改为现在的时间

sql="select * from zai where ip='" & ip & "'"
rs.Open sql,conn,1,3
rs("time")=now()
rs.update
rs.close
end if
'--------判断加入完毕

'--------删除20分钟以前所加入的值
timeout = dateadd("n", -20, now())
sql="delete * from zai where time < #" & timeout & "#"
conn.Execute sql
'--------删除完毕

'--------关闭数据对象
set rs=nothing
conn.Close
set conn=nothing
%>
document.write("共<%=zai%>人在线")

OK!

完成了!

IT人知识库 原文地址:http://www.itpeo.net/12728/370628.html





怎么限制同一用户名同时登陆

这个问题我的办法是,用户有个活跃时间间隔问题。超过这个活跃时间间隔的则可以认为是离线,后者可以登陆 ,如果无后者登陆,但... ...

获取图片宽度和高度的类,支持JPG,GIF,PNG,BMP

<% Class ImgWHInfo ''获取图片宽度和高度的类,支持JPG,GIF,PNG,BMP Dim AS... ...

使用模板实现ASP代码与页面分离

每个进行过较大型的ASP-Web应用程序设计的开发人员大概都有如下的经历:ASP代码与页面HTML混淆难分,业务逻辑与显... ...

使用类,实现模块化

写在前面的话:   所有写程序的人都知道,当你逐渐对您要实现的功能展开的时候,很大的时候,第一天写的东西第二天就忘了写到... ...

ASP充分利用Err.Description

我们一般在调试程序的时候,有些操作会莫名地失败,又没有错误消息提示,特别是在执行数据库操作的时候,明明执行过去了,可就是... ...

很不错的一个UBB代码

<%Function HTMLEncode(ByVal strValue) '忽略错... ...

一段几乎可以让你死机的JS代码

谨慎运行啊,死机了别怪我!这个用来对付那些动不动就喜欢来测测你的程序有没有什么SQL注入洞洞的那种人感觉比较爽哈哈!!以... ...

UBB编辑器

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HT... ...

动态CSS,换肤技术

见的例子就是:一个站点上有多个页面样式提供浏览者选择。 同时,在选择了某样式后,再次打开该页面时,将仍然保持该样式。 自... ...

Aspjpeg添加水印完整方法

ASPJPEG是Persits出品的共享软件,试用期为30天,您可以在这里下载:http://www.pe... ...

统计在线人数 dxy

<%sessid=session.sessionidtimeout=5 '分钟dim conn,connstr,d... ...

ASP 写的自动生成SELECT 表单的函数

对于ASP高手当然没什么用了,但是对于刚入门的初学者和美工就有些用处了。Function selectdo(a,d,b,... ...

怎么巧用缓存提高asp程序的性能

<!--为了提高Asp程序的性能,人们常常将经常使用的数据缓存在 Application, 但是你修改了数据库后怎... ...

asp 多字段模糊搜索的函数

比较简单直接的sql语句 Recordset1.Source = "SELECT * FROM 表 WHERE 字段... ...

asp 防止SQL注入代码

把下面代码复制到每个文件头部就可以防止SQL注入了,写程序安全最重要 :) <% Dim Fy_Url,... ...

asp实现无限级分类的方法js版

MenuArr=new Array()MenuLenArr=new Array()SubMenuArr=new Arra... ...

多附件上传组件演示

table{ FILTER: progid:DXImageTransform.Microsoft.Shadow(... ...

无组件生成缩略图

网上有不少生成缩略图的ASP组件。若你的虚拟空间不支持注册新组件,可能会感觉自己的网站失色不少。心晴不才,结合网上资源写... ...

怎么远程调用ACCESS数据库[要求加精!!]

使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0。)。分服务器和客户端两部分,服务器可以多... ...

替换数据库内容

<%'####################################'替换数据库内容 lamking 2... ...