主题:  【[ASP]简易的查询在线人数及名单方法】

keleniao

职务:普通成员
等级:1
金币:0.0
发贴:18
#12004/5/23 10:16:05
建立一个名为OnLine的表,分别有UserName(文本)、UserIP(文本)、LastActTime(日期/时间)三个字段,代表访客的昵称、IP、最后活动时间!

<%
DuringTime=1100 '设置访客1100秒不活动则显示离线
set rs02=server.createobject("adodb.recordset")
sql02="select * from OnLine"
rs02.open sql02,conn,3,2
do while not rs02.eof
if datediff("s",rs02("LastActTime"),now)>=DuringTime then
strSQL = "delete * from OnLine where LastActTime =#"&rs02("LastActTime")&"#"
conn.execute strSQL
end if
rs02.movenext
loop
rs02.close
set rs02=nothing


sql01="select * from OnLine where UserIP='"&request.servervariables("REMOTE_ADDR")&"'"
set rs01=server.createobject("adodb.recordset")
rs01.open sql01,conn,3,2

if rs01.recordcount =0 then '数据库中没有该IP
rs01.addnew

rs01("UserIP")=request.servervariables("REMOTE_ADDR")
rs01("LastActTime")=now
if session("user")<>"" then
rs01("UserName")=session("user")
else
rs01("UserName")="游客"
end if

else
rs01.update

rs01("UserIP")=request.servervariables("REMOTE_ADDR")
rs01("LastActTime")=now
if session("user")<>"" then
rs01("UserName")=session("user")
else
rs01("UserName")="游客"
end if

end if

rs01.update
rs01.close
set rs01=nothing
UserName="游客"
sql03="select * from OnLine where UserName='"&UserName&"'"
set rs03=server.createobject("adodb.recordset")
rs03.open sql03,conn,3,2
tj4=rs03.recordcount
rs03.close
set rs03=nothing

sql04="select * from OnLine where UserName<>'"&UserName&"'"
set rs04=server.createobject("adodb.recordset")
rs04.open sql04,conn,3,2
tj5=rs04.recordcount
rs04.close
set rs04=nothing
%>


把以上代码存入每一个需要查询访客人数的页面!
以上程序把有名字的人(session("user")<>"")当成注册会员,没名字的人当成游客!在需要显示人数的地方调用以下代码:

当前有 <%=tj5%> 个会员和 <%=tj4%> 个潜水员在访问论坛


如果需要显示每个会员的名称:

<%sql05="select * from OnLine where UserName<>""游客"""
set rs04=server.createobject("adodb.recordset")
rs04.open sql04,conn,3,2
do while not rs04.eof%>
<%=rs04("UserName")%>
<%rs04.MoveNext
loop
rs04.close
set rs04=nothing%>


完了,简单吧!
有人问如果想要知道人们都在访问哪一个页面,要怎样做,其实也很简单,增加一个字段来存放页面的url,读取资料的时候读出就行:)



fx8118

职务:普通成员
等级:1
金币:0.0
发贴:78
#22004/6/5 23:08:17
老大,你这句有错误啊!是吗?
conn.execute strSQL



我有BLOG了

职务:普通成员
等级:4
金币:16.8
发贴:2209
#32004/6/8 10:11:14
好东东,T