原理:每个网页都包含conn.asp数据库连接页,所以把要统计的放到这个页比较好。
这样只要你打开网页,那么这个网页上就有一个隐藏的定时刷新的iframe,这个页定时的把用户的在线状态写在表里,以达到统计时间的目的
最近看网上有关于这种方法的问题反馈说在本地可以正常运行,在服务器上却不行,那人说自己解决问题了,就这个iframe 放到head里。
conn.asp每个页都有,所以把这个隐藏iframe加到这里
<iframe name="Detail" id="Detail" frameborder="0" hspace="0" vspace="0" src="refresh.asp" style="display:none"></iframe>
refresh.asp是定时刷新页,
<META http-equiv=refresh content=300>
<META http-equiv=Pragma content=no-cache>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<%
If session("username")<>"" Then
If session("refreshtimes")<>"" Then
If DateDiff("n", session("refreshtimes"), Now())>1 Then
SqlDbHost = "127.0.0.1" SqlDbName = "SqlDbName" SqlUserName = "SqlUserName" SqlUserPass = "SqlUserPass" Set conn = Server.CreateObject("ADODB.Connection")
connstr = "Provider=SQLOLEDB.1; Persist Security Info=True; Data Source=" & SqlDbHost & "; Initial Catalog="&SqlDbName&"; User ID="&SqlUserName&"; Password=" & SqlUserPass
conn.Open connstr
conn.Execute("update users set OnlineTimes=OnlineTimes + "&DateDiff("n", session("refreshtimes"), Now())&" where username='"&session("username")&"'")
session("refreshtimes") = Now()
End If
Else
session("refreshtimes") = Now()
End If
End If
%>
引用本页地址:
http://www.yongfa365.com/item/9ed0df87b435e489.html