asp论坛在线人数统计研究

原创 2004年07月03日 18:25:00

自我感觉用的方法能比较准确的统计在线人数。当然一定也有不足的地方,希望各位老师纠正。

特别说明:

本论坛登录是采用用户名登录,登录后取得用户昵称。整个网站不显示用户名,我想相对来说安全一点吧,所以有昵称和用户名区别。

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,希望和各位老师交流学习。

如何统计网站的在线人数呢?

如何统计网站的在线人数呢? 首先很简单的思想就是,如果只针对会员用户进行统计,在登录登出时加判断,然后维护一个表(或者其他存储方式)来存储在线会员即可。 但是有个问题就是,对于正常退出的会员当然可...
  • u012639466
  • u012639466
  • 2016年12月13日 23:19
  • 1930

asp论坛在线人数统计研究

asp论坛在线人数统计研究 最近用ASP做了一个小论坛,客户又要求要统计在线人数,所以花了点时间写一个在线统计访会员的功能。写的过程中也查看了许多文档。自我感觉用的方法能比较准确的统计在线人数。当然...
  • u014739805
  • u014739805
  • 2014年04月30日 18:08
  • 287

【ASP.NET】——统计在线人数、历史访问人数

先介绍一下,在设计过程中,用到的Application和Session方法:
  • u012654963
  • u012654963
  • 2015年08月09日 20:16
  • 2668

javaweb中实现在线人数统计

session并不是浏览器关闭时销毁的,而是在session失效的时候销毁下列代码就是监测session创建、销毁 package com.my.count; import javax...
  • u014756827
  • u014756827
  • 2017年04月14日 10:24
  • 2354

asp.net 使用Application和Session对象统计在线人数

asp.net 使用Application和Session对象统计在线人数   使用Application和Session对象,结合全局配置文件Global.asax和站点配置文件Web.confi...
  • alvinfqz
  • alvinfqz
  • 2016年06月03日 09:46
  • 1267

PHP统计当前在线人数

PHP统计当前在线人数 一、开发环境 1、Windows+Apache+MySQL+PHP的环境。 2、文本编辑器:Sublime。 二、主要技术 PHP 三、具体步骤 本文主要是通过I...
  • mico_cmm
  • mico_cmm
  • 2016年11月10日 21:45
  • 2386

web开发之在线人数统计

需求: 统计当前在线人数(当前访问网站的用户) 思路: 第一步,把访客的信息存入到数据库,每次访问或者刷新页面的时候,都更新该访客在数据库中的记录,也就是更新该访客的最后活动时间。 第...
  • Jahnng
  • Jahnng
  • 2015年04月07日 20:38
  • 1177

修改Discuz论坛最高在线人数记录的方法

Discuz论坛模板的最高在线人数记录是保存在其数据库的cdb_settings表的一个记录里,具体的修改方法应该是让Discuz的数据库执行一条SQL语句,SQL如下: UPDATE `cdb_s...
  • superbirds
  • superbirds
  • 2013年02月18日 14:17
  • 6188

实现统计在线用户的几种方式

一,每次用户操作更新其在线时间 这个方法很直接,在用户表里加一个字段update_time,每次用户进行操作,都更新这个字段为当前时间,一般是在一个被所有Action继承的基类里写这个操作。 然后...
  • sb___itfk
  • sb___itfk
  • 2014年09月02日 19:20
  • 2860

php统计在线人数

php统计在线人数。
  • e421083458
  • e421083458
  • 2014年01月02日 13:42
  • 6713
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp论坛在线人数统计研究
举报原因:
原因补充:

(最多只允许输入30个字)