不用Global.asa也可以实现在线人数统计 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 不用Global.asa也可以实现在线人数统计 (http://www.webasp.net/article/4/3652.htm) |
| -- 作者:未知 -- 发布日期: 2003-07-11 |
| 不使用Global.asa实现在线人数统计 <% sessionID = session.SessionID timeout = 5 ' 设置保持SESSION的时间,你可以增加这个数值 Conn_String = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("count.mdb") 'Conn_String = "activeUser" '设置你的 DSN = "activeuser" 是一个很好的方法,因为你需要你需要把这个文件包含到所有的ASP脚本里 Set ConnCount =Server.CreateObject("ADODB.Connection") ConnCount.Open Conn_String ' 超时以后删除SESSION aaa = dateadd("n", -timeout, now()) connCount.Execute ("delete * from count where postdate < #" & aaa & "#") ' 保持 SESSIONID sql0 = "select sess from count where sess='" & sessionID & "'" set rscheck = connCount.Execute (sql0) if rscheck.eof then sql = "insert into count (sess,postdate) values('" & sessionID & "', '" & now() & "')" connCount.Execute (sql) end if rscheck.close set rscheck = nothing '计算 sessionID sql2 = "select count(sess) from count" set rs = connCount.Execute (sql2) count = rs(0) rs.close set rs = nothing sql3 = "select * from count" set rspredel = connCount.Execute (sql3) do until rspredel.eof xxx=DateDiff("n", rspredel("postdate"), Now()) if xxx > timeout then count = count-1 end if rspredel.movenext loop rspredel.close set rspredel = nothing connCount.Close set connCount = nothing if count = 0 then count = 1 end if %> <%=count%> Active users |
| webasp.net |