在线——急!——显示在线人员姓名……

combridge 2002-12-05 01:34:41
显示在线人员姓名(已登陆人员),点击姓名可以发送短消息,统计在线总人数
...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
combridge 2002-12-05
  • 打赏
  • 举报
回复
谢谢

denghan 2002-12-05
  • 打赏
  • 举报
回复
Global.asa对session及application的超时做设定
可实现用户关闭窗口或掉电时的在线人数的响应
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
application("online")=0
for i=1 to 20
application("user" & i)=""
next
End Sub

Sub Session_OnStart

application("online")=application("online")+1
Session.timeout=120 '用户session超时设置为2分钟
End Sub

Sub Session_OnEnd ''实现用户关闭窗口或掉电时的在线人数的响应
'when a user timeout then empty his application("user(i))")

i=cint(session("Num"))
application("user" & i)="" '将登录用户名清空

application("online")=application("online")-1 '在线人数少一
End sub


sub Application_OnEnd

for i=1 to 40
application("user" & i)=""
next

application("online")=0

End sub
</SCRIPT>


1.在用户登录页中将用户名写入application
application("user" & i)=strUserName '将登录用户名写入application
Application("Online") = Application("Online") + 1 '在线人数累加
Application.UnLock
session("username")=strUserName '将登录用户名存入session对象

2.用户离开时:
application("user" & i)="" '将登录用户名清空
application("online")=application("online")-1


3.当用户关闭IE窗口时,可执行如下代码以实现其退出聊天室:
<script language="javascript">
function window.onbeforeunload()
{
if ((event.clientX>document.body.clientWidth) && (event.clientY<0||event.altKey))
{ //执行把该用户从列表中删除的代码.... }
}
</script>
combridge 2002-12-05
  • 打赏
  • 举报
回复
谢谢各位,但是如果用户直接关闭窗口或者是机器掉电,那怎么办?
arclala 2002-12-05
  • 打赏
  • 举报
回复
首先在用户登录进入时,要生成一个Session("name")字段的值,或是cookies("club")("name")的值,以便于在进行操作时,让SQL在社区中任意页面都知道是哪个用户的记录。接着更新用户的下online字段和logintime字段,语句如下:
  conn.execute("Update users set online=1,logintime='"&now&"' where name='"&session("name")&"'")
  这条语句的作用在于当用户登录时,就把用户在线设为真,再把当前操作时间设为现在。其次在用户进行贴子或文章浏览时,也要用此语句,因为这样才可能更加的准确些。
在这些语句的后面再加上一句。
  conn.execute("Update users set online=0 where diffdate(""n"",logintime,'"&now()&"')>10")
  这条语句的作用表示把用户最后操作时间和当前时间相比较,如果大于10分钟的话,就会把这些用户都设为离线。
hxq521 2002-12-05
  • 打赏
  • 举报
回复
用global.asa

退出时,让session 为空
datacomm 2002-12-05
  • 打赏
  • 举报
回复
这个好实现,但退出呢?关注中......
gaopq_11 2002-12-05
  • 打赏
  • 举报
回复
做个表里放在线人数,在线姓名
一进网站就添加,显示出来就可以

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧