用asp如何判断用户是否在线?
发布网友
发布时间:2022-04-25 06:03
我来回答
共3个回答
热心网友
时间:2022-04-25 07:33
当有用户开始访问网站时,服务器端的Global.asa将会被访问。将会给用户开启一个Session。可以给每一个用户设置自己的个人用户信息。这里就不多进行解释了。在Global.asa中有当Application启动和Session启动时的消息响应函数。可以敲入如下的代码。
< SCRIPT LANGUAGE="VBScript" RUNAT="Server" >
Sub Application_OnStart
’ 当服务器开启时,设置用户数为0
Application("Users") = 0
End Sub
Sub Session_OnStart
Session.Timeout = 20
’ 当开始一个Session时用户数加1
Application.Lock
Application("Users") = Application("Users") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
’ 当结束一个Session时用户计数器减1
Application.Lock
Application("Users") = Application("Users") - 1
Application.UnLock
End Sub
< /SCRIPT >
在网站运行时,Application变量 Application("Users")将一直记录网站的在线人数。可以在任何一个网页中使用写出在线用户的数量。至于记录,则可以使用很多的方法。如果是记录到文件中,可以使用Scripting.FileSystemObject物件进行处理。如果记录到数据库中,则可以使用ADO等等。这里就不一一介绍了。
用N个application("user" & N)来保存用户名,再用application("TimeBegin")来保存每个用户的登录时间,同
时,在用户登录时用session("TimerBegin")保存登录时间(timer),在发言区设定刷新时间为N秒,每次刷新将session
("TimeBegin")的时间更新,同时判断timer - application("user"&session(userID)) 是否>N秒,如果是则说明该用户没
有自动刷新,即意味着已经断线,即可将该application("user"&N)设为空值,再提示该用户已退出即可。
部分代码:
total = application("AllPeople")'总人数
aryHuman = split(total,";")
for i = lbound(aryHuman) to ubound(aryHuman) - 1
if application("user" & i) = "online" then
if int(timer) - int(application("TimeBegin" & i)) > 120 then
application("user" & i) = ""
temp = aryHuman(i)
aryName = split(temp,",")
hrefname = aryName(0)
for j = lbound(aryHuman) to ubound(aryHuman) - 1
if application("user" & j) = "online" then
application("content" & j) = "<FONT color=#000000>【公告】"&hrefname&"</FONT>" &"<font color=#F08000
>"& "断线..." & "</font><font color = #000000 class=p9>" & " <" & time() & "></font><br>" & application
("content" & j)
end if
next
end if
end if
next
%>
热心网友
时间:2022-04-25 08:51
上的时候给服务器(数据库)传个值,下的时候也给服务器(数据库)传个值。在不在就判断值咯。
热心网友
时间:2022-04-25 10:25
你要建个字段时间型的.用户每刷新一次都要更新当前的时间.然后要个SQL语句.删除没活动的用户delete
from
表名
where
datediff('s',时间字段,now)>60这样就删除了超过60分钟没有活动的用户