说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

制作在线人员的问题~

编辑:说三道四文库 发布时间:2018-04-20 05:39
HTML文档下载 WORD文档下载 PDF文档下载
0为离线,1为上线

在数据库里把成员上线后的upload属性值设置为1,这个好办,就是这离线后如何把这upload值改回0,特别是在用户没有经过页面中的退出操作而直接关闭浏览器后,这个值怎么改成0啊?

高手教我~
up一下,我用了200分
没有得到理想得答案
http://expert.csdn.net/Expert/topic/1350/1350144.xml?temp=.2401697
这个帖子算不算?
解决方案:
设置一个值,比如10分钟。意思指该成员10分钟没有动作,则认为其不在线。

成员登陆后在数据库表中写入登陆时间,并该成员刷新页面后也同时修改库中他的登陆的时间。并且判断库中是否存在超过10分钟没动作的成员。有则修改upload为0.


不知写的是否看的明白,不好意思,表达能力差了点

可以使用一个global.asa,在 sub Application_OnEnd函数中处理离线的记录,或者在这个文件中的 Sub Session_OnEnd中处理也行
global.asa只能根目录下,而且整个站点只能1个。。。。。。
先谢谢了,明天试试,再结帖
我在global.asa中用了以下代码,关闭浏览器退出后,在线记录还是存在呀.......

<script language=vbscript runat=server>
sub session_onend
 dim kk
dim strsql
set conn = Server.CreateObject("ADODB.Connection")
conn.open "driver={SQL server};server=LF;uid=sa;pwd=;database=system"
Set my_rs= Server.CreateObject("ADODB.Recordset") 
    strSql="select * from [user] where 用户名='"&Session("Uname")&"'"
    my_rs.open strSql,Conn,3,3 
        my_rs("状态")=0
        my_rs.update
        my_rs.close
        set my_rs=nothing
   conn.close
   set conn=nothing
end sub
</script>

都告诉你解决方案了,不一定要用global.asa的
用DATEDIFF函数:比如
sql="delete from online where DATEDIFF('s', lasttime, now()) > 1200"
conn.execute sql
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘