统计在线人数 dxy

  <%

  sessid=session.sessionid

  timeout=5 '分钟

  dim conn,connstr,dbpath

  dbpath="online.mdb"

  'connstr="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(dbpath)

  connstr="provider=microsoft.jet.oledb.4.0;data source="&server.mappath(dbpath)

  set conn=server.createobject("adodb.connection")

  conn.open connstr

  '删除过期的session

  aa=dateadd("n",-timeout,now())

  response.write sessid&"<br />"

  response.write aa

  sqld="delete * from counts where postdate<#"&aa&"#"

  conn.execute(sqld)

  '保存id

  sqlc="select sessid from counts where sessid='"&sessid&"'"

  set rscheck=conn.execute(sqlc)

  if rscheck.eof then

  sqla="insert into counts(sessid,postdate)values('"&sessid&"','"&now()&"')"

  conn.execute(sqla)

  end if

  rscheck.close

  set rscheck=nothing

  '计算人数

  sqlall="select count(sessid) from counts"

  set rs=conn.execute(sqlall)

  countsall=rs(0)

  rs.close

  set rs=nothing

  sql="select * from counts"

  set rspredel=conn.execute(sql)

  do until rspredel.eof

  xxx=datediff("n",rspredel("postdate"),now())

  if xxx>timeout then

  countsall=countsall-1

  end if

  rspredel.movenext

  loop

  rspredel.close

  set rspredel=nothing

  conn.close

  set conn=nothing

  if countsall=0 then

  countsall=1

  end if

  %>

  当前有<%=countsall%>人