如何统计用户的在线总时间,时间要录入数据库中

如何统计用户的在线总时间,时间要录入数据库中,第1张

在.net中的global.asax中有Application_AuthenticateRequest事件和Application_BeginRequest事件是在每次访问aspx文件都会触发。但是Application_BeginRequest中不能对已经经过FROMS身份验证的身份ticket票进行识别。所以只能放到Application_AuthenticateRequest中去。

实现原理是:每次访问aspx文件时候都会判断在线表里面是否有这个用户(已经登录了的记录用户名,没有登录的记录IP地址),如果不存在,则将该用户的身份、最后访问时间、最后访问IP、和最后访问的URL存入数据库。如果数据库中已经曾在,则更新该记录,把最后访问时间,IP以及最后访问URL更新。

同时,删除数据库中与当前时间间隔20分钟以上的数据(20分钟没 *** 作当为超时)。

这样,你不仅仅可以看到当前在线的准确人数,还知道是那些人在线,以及是否登陆,和访问人数中已经是会员的比例,以及所在位置,并计算某个页上的人数。

数据库结构:

字段 类型 长度 说明

1uson_serial int 40 序号

0uson_user varchar 200 用户名(没登陆则为IP)

0uson_ip varchar 200 IP地址

Ouson_dataIn datetime 80 登陆时间

0uson_date_op datetime 80 最后 *** 作时间

0uson_url varchar 1000 最后 *** 作页面路径

<%

dim connstr,datapath,conn

datapath="DataBase/数据库.mdb" '数据库路径

connstr="Provider=Microsoft.JET.OLEDB.4.0Data Source=" &Server.mappath(datapath)

Set conn=Server.CreateObject("ADODB.Connection")'建立数据库连接

conn.open connstr '打开数据库连接

SQL="Select * from 表名"

set rs=server.createobject("adodb.recordset") '建立数据集

rs.open SQL,conn,1,3 '打开数据集

rs.AddNew

rs("字段")=Request("name")

rs("字段")=Request("pass")

rs.Update

rs.Close '关闭

Set rs=nothing

conn.Close '关闭

Set conn=nothing

%>

如果还完善不了 HI我


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9920550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存