广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    ASP制作在线人数统计实例

    2018-05-08 11:29:37 次阅读 稿源:互联网
    零七广告
    我们先新建一个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!

    完成了!

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告