文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
asp中有关字符编码转换的几个函数
绝妙的asp生成静态页面html函数
Asp计算页面执行时间
一个简单的用存储过程分页
将asp页面转换成htm页面
ASP网站漏洞解析及黑客入侵防范方法
URL编码与SQL注入
几种常用排序算法(asp)
ASP调用带参数存储过程的几种方式
实用的ASP连接数据库的函数
ASP如何获取真实IP地址
ASP中怎么实现SQL数据库备份、恢复
判断Cookies是否处于开启状态
怎样才能将服务器端文件夹下的文件,..
几行Asp代码实现防止表单重复提交
用ASP设计网站在线人数统计程序
asp论坛在线人数统计研究
如何用ASP远程在数据库中创建Table
用ASP调用SQL Server的视图和存储过程
Asp与XML的关系
ASP读取EXCEL
在ASP中使用Oracle数据库技巧
一个通过web.Mail发送邮件的类
几种打开记录集方式的比较
购物车范例(购物车页面 )
如何使用FSO搜索硬盘文件
GB码和BIG5码的互换技术
用ASP开发WEB日期选择器
一个投票系统的源程序(coveryourasp.c..
列出服务器上的打印机


技术教程 -> ASP教程 ->  
asp论坛在线人数统计研究
来源:转载   人气:1837   录入时间:2007-11-8
     最近用ASP做了一个小论坛,客户又要求要统计在线人数,所以花了点时间写一个在线统计访会员的功能。写的过程中也查看了许多文档。自我感觉用的方法能比较准确的统计在线人数。当然一定也有不足的地方,希望各位老师纠正。
   
   特别说明:
   
   本论坛登录是采用用户名登录,登录后取得用户昵称。整个网站不显示用户名,我想相对来说安全一点吧,所以有昵称和用户名区别。
   
   1。建立数据库表
   表名为online
   设如下字段
   id '用来记录每一个访问都的session.sessionid
   name '如果是访客,则记录为访客。
   online '如果是访各为0 如果是会员1
   datetime '最近活动时间
   username '会员的登录用户名,访客为空。
   ip '记录访问都的登录IP
   
   head.asp '向数据库表写入在线人数,该页面必须搜入到每一个用于浏览ASP页面中。
   <%
   set rs=Server.CreateObject("ADODB.Recordset")
   if session("username")="" then 判断用户未登录
   sql="select * from online where id='"&session.sessionid&"' " '判断这个sessionid是否存在于数据库表中.
   rs.Open sql,Conn,1,3
   if rs.eof then '访客第一次浏览
   rs.addnew
   rs("id")=session.sessionID
   rs("name")="游客"
   rs("online")=0 '0表示用户未登陆,是游客身份
   rs("datetime")=now()
   userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    If userip = "" Then
    userip= Request.ServerVariables("REMOTE_ADDR")
    end if
    rs("ip")=userip
   else '访客非第一次浏览
   rs("datetime")=now() '更新活动时间
   rs.update
   rs.close
   end if
   else
   sql="select * from online where id='" & session.sessionID & "' or admin='"&session("username")&"'" '判断sessionid 或者 用户名记录已存在数据表中。
   rs.Open sql,Conn,1,3
   if rs.eof then
   rs.addnew '会员第一次进入网站(可能从网站首页直接登录进入论坛)。
   rs("id")=session.sessionID
   rs("name")=session("show") '写入用户昵称
   rs("username")=session("username") '写入登录用户名
   rs("online")=1 '表示用户已经登陆,是会员身份
   rs("datetime")=now() '将当前系统时间设置为用户的登陆时间
   userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    If userip = "" Then
    userip= Request.ServerVariables("REMOTE_ADDR")
    end if
    rs("ip")=userip
   else //会员非第一次浏览网站,访客登录网站。
   rs("name")=session("show") 更新用户昵称
   rs("username")=session("username")
   rs("online")=1 '表示用户已经登陆,是会员身份
   rs("datetime")=now()
   end if
   rs.update
   rs.close
   end if
   set rs=nothing
   %>
   conn.execute("delete from online where datediff('s',datetime,now())>60") '删除60秒没有活动的访客,时间可以自己调整。
   
   有兴趣和意见的朋友可以发信到qizulovemin@hotmail.com,希望和各位老师交流学习。




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987