ASP制作在线人数统计实例

2016-02-19 12:06 4 1 收藏

下面,图老师小编带您去了解一下ASP制作在线人数统计实例,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - Web开发 】

我们先新建一个ACCESS数据库

内容为

表名:zai

字段为

1.ip

2.time

建立一个文件为index.asp

然后就如下程序!

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)


'---------定义变量
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
'---------建立数据库链接完成

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

'---------新建数据库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!

完成了!

来源:https://www.tulaoshi.com/n/20160219/1599821.html

延伸阅读
标签: ASP
  实现在线人数统计最常用的方法就是golobal.asa结合session做,但这种方法有两个不利: 1、每个session要占用12k的服务器内存空间,为了人数+1就要付出12k内存的代价。 2、golobal.asa要放在网站的根目录下才会起作用,而且根目录只能有一个golobal,矛盾突出。 为此,有一种使用cookie和application在asp文件中实现在线统计的方法,欢迎批...
标签: Web开发
% NowUrl=request.servervariables("HTTP_REFERER") UserName = session("Wenday_sys_User") if UserName="" then    UserName="客人" end if call sqlonline() Response.Write "document.write(" & chr(34) & "  font color=#000000当前在线 "& online() &"人/font"& chr(34) & ")" 'Response.Write "document.write(" & c...
标签: ASP
  count.asp: <%Server.ScriptTimeout=300 id=Trim(Request.QueryString("id")) fc=Trim(Request.QueryString("fc")) if fc="" then fc="FFFF00" bg=Trim(Request.QueryString("bg")) if bg="" then bg="000000" bc=Trim(Request.QueryString("bc")) if bc="" then bc="00FF00" sername=Request.ServerVariables("SERVER_NAME") scrn...
标签: ASP
  最普通的方法是用SESSION,但缺点是无法即时反应在线情况(有超时时间)和占用服务器资源(如果有100人在线就有100个SESSION,想想看8);上次(好象间隔很久了耶)介绍了一种采用APPLICATION+COOKIES的方法,但实现方法有些烦琐同时还要设一个隐藏的自刷新页面。 这种方法则避免了以上的弊病,经实践,效果不错(例子:WWW。ATERSOFT。...
标签: PHP
  可以实现在线人数统计,日访问量统计,月访问量统计。。。。。 <? $sql = "CREATE TABLE guestinfo(id integer DEFAULT '0' NOT NULL       AUTO_INCREMENT,                    &nbs...

经验教程

999

收藏

85
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部