注册 登录
编程论坛 ASP技术论坛

校验用户是否在线

lihaorong 发布于 2014-04-29 17:10, 527 次点击
我在服务器运行一个ASP,用来检测用户在线的。
主要是在用户表,设立一个字段,客户端每隔一分钟,更新该字段。
然后服务器的asp没隔150秒,比较一次这个字段的值。如果相同则判定为下线,更新在线状态。
但是不知道为什么服务器运行该ASP却提示"无法显示该网页"。
请各位帮忙看看是不是代码哪里出错了?谢谢
代码如下:
程序代码:
<!--#include file="incs/conn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="refresh" CONTENT="150">
<title>服务器运行中</title>
</head>
<%
sql
="select * from SYS_USER"
rs.open sql,conn,
1,3
flash_user
=""
Do While NOT rs.EOF
   flash_user
=flash_user&"|"&rs("USER_ID")&","&rs("reflash")
   rs.movenext
Loop
rs.close
'拆分大数组成小数组,变成(用户ID,刷新值)
   newn=ubound(split(flash_user),"|"))
   newary
= split(flash_user,"|")
'如果session非空  
if session(flash_user)<>"" then
'拆分session成(用户ID,刷新值)
   oldn=ubound(split(session(flash_user),"|"))
   oldary
= split(session(flash_user),"|")
   
'拆分个别用户数组
   for i=1 to oldn-1
      olduser
=split(oldary(i),",")
      newuser
=split(newary(i),",")
      
'校验刷新值,如果相同则判定为下线  
      if olduser(1)=newuser(1) then
         sql
="select * from SYS_USER where USER_ID="olduser(0)
         rs.open sql,conn,
1,3
         rs(
"online")=0
         rs.update
         rs.close
      
end if
   
next
end if
'更新session
sql="select * from SYS_USER"
rs.open sql,conn,
1,3
session(flash_user)
=""
Do While NOT rs.EOF
   session(flash_user)
=session(flash_user)&"|"&&rs("USER_ID")&","&rs("reflash")
   rs.movenext
Loop
%>
<body leftmargin="0" topmargin="0">
服务器运行中
</body>
</html>

2 回复
#2
lihaorong2014-04-30 09:33
程序代码:
<%
sql
="select * from SYS_USER order by user_id asc"
rs.open sql,conn,
1,3
flash_user
=""

Do While NOT rs.EOF
   id
=rs("USER_ID")
   re
=rs("reflash")
   flash_user
=flash_user&"|"&id&","&re
   rs.movenext
Loop
rs.close
'拆分大数组成小数组,变成(用户ID,刷新值)
newary = split(flash_user,"|")
'如果session为空  
if session(flash_user)="" then
   
'更新session
   session(flash_user)=flash_user
else
   
'拆分session成(用户ID,刷新值)
   oldn=ubound(split(session(flash_user),"|"))
   oldary
= split(session(flash_user),"|")
   
'拆分个别用户数组
   for i=1 to oldn
      olduser
=split(oldary(i),",")
      newuser
=split(newary(i),",")
      
'刷新值如果相同则判定为下线  
      if olduser(1)=newuser(1) then
         sql
="select * from SYS_USER where USER_ID="& olduser(0)
         rs.open sql,conn,
1,3
         rs(
"online")=0
         rs.update
         rs.close
      
end if
   
next
end if
%>
#3
lihaorong2014-04-30 09:33
原来少了个&
1