*********使用数据库判断在线名单以及在线人数
*********系统支持:asp+access,在windows2000+iis5上测试通过
*********login.asp*********
<%@language="vbscript"%>
<%on error resume next%>
<!–#include file="../fpdb/connection.asp"–>
.
.
.
登录判断,略
.
.
登录成功
session("name")=rs("m_name")
rs.close
strsql="update b_member set m_isonline=yes,m_lasttime=now() where m_name="+strname+""
rs.open strsql,myconn
response.redirect"xxx.asp"
set rs=nothing
myconn.close
set myconn=nothing
%>
*********refresh.asp*******
<%@language="vbscript"%>
<%on error resume next%>
<!–#include file="../fpdb/connection.asp"–>
<html>
<head>
<meta http-equiv="refresh" content="60,url=refresh.asp">
</head>
.
.
.
设置5分钟未动作的id为offline,rers1为前面打开的连接,读取id。
set rers2=server.createobject("adodb.recordset")
for ipage= 1 to onlinenum
if minute(now)-minute(rers1("m_lasttime"))>5 or minute(now)-minute(rers1("m_lasttime"))<0 then
resql="update b_member set m_isonline=no where m_id="&rers1("m_id")
rers2.open resql,myconn
end if
rers1.movenext
if rers1.eof then exit for
next
myconn.close
set myconn=nothing
%>
*************main.asp,主文件中判断关闭,防止直接关闭浏览器产生错误
<body onunload="javascript:window.open (close.asp, newwindow, height=20, width=20, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no)" >
*************close.asp,同上**********
<%@language=vbscript%>
<!–#include file="../fpdb/connection.asp"–>
<%on error resume next
set rsclo=server.createobject("adodb.recordset")
strclo="update b_member set m_isonline=no,m_atarea=不在线 where m_name="&session("name")&""
rsclo.open strclo,myconn
rsclo.close
myconn.close
set rsclose=nothing
set myconn=nothing
response.write err.description
%>
<script language="javascript">
window.close();
</script>
基本就是这样。
