技术超难题!

cathylee 2004-08-11 06:25:25
1.我用账号登陆,正常退出可以更改库里面ONLINE字段的状态,1为在线,0为不在线,这个现在实现了
2.我用SESSION实现的登陆,当SESSION失效时,如何处理库中字段,将在线改为不在线,即将1改为0
3.当直接关闭IE时,如何交在线状态更改
4.当突然断电时如何将在线状态更改
请高手们解答一下,最好有代码!谢各位!
...全文
93 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
SonicX 2004-08-11
  • 打赏
  • 举报
回复
一般都是靠几分钟内不动判断离线
huhanshan013 2004-08-11
  • 打赏
  • 举报
回复
3.当直接关闭IE时,如何交在线状态更改
这个问题帮你解决!
BODY中有个unload选项,关闭时打开一个网页
这个网页为纯ASP代码,处理你需要处理的东西,然后处理完之后自动关闭。
其实是几个网页的连贯动作,但是看上去是一个动作了!
  • 打赏
  • 举报
回复
菜菜升级了,呵呵
mjpclab 2004-08-11
  • 打赏
  • 举报
回复
在站点根目录建立Global.asa文件,然后在下面填入代码

Sub Session_OnEnd
(失效时的处理代码..........)
End Sub
jervis82 2004-08-11
  • 打赏
  • 举报
回复
四星到底是怎样来的。晕。。。泡了多少年,唉,月薪有多高啊?:)
  • 打赏
  • 举报
回复
meizz(梅花雪)

好难看到你哦
meizz 2004-08-11
  • 打赏
  • 举报
回复
2. 在global.asa 里的session_onend事件里修改这个状态值, 在这个事件中session还是有值的

3. 直接关闭 IE 时你可以加一个判断, 判断用户直接关闭了IE, 然后再 Session.Abandon()
<script language=javascript>
window.onbeforeunload = function()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
//在这里用 xmlhttp 的方式告知服务器用户已经关闭了IE
}
}
</script>

4. 等 session 超时吧
lonlykiller 2004-08-11
  • 打赏
  • 举报
回复
2.普遍做法,用几分钟不动删除
3.这个好像靠一个gloas.asa的文件,找找聊天室的源码
4.好像也是靠上面的文件
Private Sub Online()'Online列表
Dim rs,sql
'set rs=server.createobject("adodb.recordset")
if isempty(login_id) then
set rs=conn.execute("Select top 1 Online_id From JoySou_Online where Online_id='"&visitor&"'")
DataBaseNum=DataBaseNum+1
if rs.eof then
rs.close
stat()

conn.execute("insert into JoySou_Online (Online_id,Online_name,Online_group,Online_addtime,Online_lasttime,"& _
"Online_lastpage,Online_hidden,Online_userid,Online_ip,Online_os,Online_soft,Online_address) values('"&visitor&"','客人','客人','"&timenow&"','"&timenow&"',"& _
"'"&page_title&"',0,0,'"&getip()&"','"&os&"','"&soft&"','"&address(0)&" - "&address(1)&"')")
DataBaseNum=DataBaseNum+1
SetCache "VisitorOnline",GetCache("VisitorOnline")+1

else
rs.close
Conn.execute("Update JoySou_Online set Online_lasttime='"&timenow&"',Online_lastpage='"&page_title&"' where Online_id='"&visitor&"'")
DataBaseNum=DataBaseNum+1
end if
Else
Conn.execute("Update JoySou_User set User_Logins=User_Logins+1 where user_id="&login_id)
'登陆次数增加
set rs=conn.execute("Select top 1 Online_id From JoySou_Online where Online_userid="&login_id)
if rs.eof then
rs.close
stat()
conn.execute("insert into JoySou_Online (Online_id,Online_name,Online_group,Online_addtime,Online_lasttime,"& _
"Online_lastpage,Online_hidden,Online_userid,Online_ip,Online_os,Online_soft,Online_address) values('"&visitor&"','"&login_username&"','"&login_power&"','"&timenow&"','"&timenow&"',"& _
"'"&page_title&"',0,"&login_id&",'"&getip()&"','"&os&"','"&soft&"','"&address(0)&" - "&address(1)&"')")
DataBaseNum=DataBaseNum+1
SetCache "UserOnline",GetCache("UserOnline")+1
else
Conn.execute("Update JoySou_Online set Online_lasttime='"&timenow&"',Online_lastpage='"&page_title&"' where Online_userid="&login_id)
DataBaseNum=DataBaseNum+1
end if
end if
dim useronline,visitoronline
sql="Delete From JoySou_online where online_userid=0 and Datediff('s',Online_lasttime,'"&timenow&"') > 20*60"
conn.execute sql,visitoronline

sql="Delete From JoySou_online where online_userid>0 and Datediff('s',Online_lasttime,'"&timenow&"') > 20*60"
conn.execute sql,useronline

DataBaseNum=DataBaseNum+2
if visitoronline>0 then
SetCache "VisitorOnline",GetCache("VisitorOnline")-visitoronline
end if
if UserOnline>0 then
SetCache "UserOnline",GetCache("UserOnline")-UserOnline
end if
End sub
自己大体看看好了,很乱的说..
MOTA 2004-08-11
  • 打赏
  • 举报
回复
上次我看ASP书看到下
MOTA 2004-08-11
  • 打赏
  • 举报
回复
你所说的技术不是用这代码的

用其他的,好象有个代码是当客户端断开就返回数据

28,390

社区成员

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

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