求助!使用全局文件统计用户在线时间所碰到的问题!(百思不得其解)

sspanzervor 2008-03-27 03:36:43
代码如下:
Sub Session_OnStart
'Application("online")=Application("online")+1
if request.cookies("UserID")<>"" then
session("StartTime")=now()
end if
End Sub

Sub Session_OnEnd
on error resume next
'Application("online")=Application("online")-1
if request.cookies("UserID")<>"" then
datStartTime=session("StartTime")
datEndTime=DateAdd("n",-20,Now())
intMinutes=DateDiff("n",datStartTime,datEndTime)
c_member_no=request.cookies("UserID")
response.write dateStartTime
if intMinutes>0 then
strSQL="insert into t_sessionLog(c_member_no,c_log_SessionEnd,c_log_SessionLength)" &_
" values ("&c_member_no&",#"&datStartTime&"#,"&intMinutes&")"
set conn=server.createobject("adodb.connection")
conn.open "dbq="&server.MapPath("bbs/forum.mdb")&"; driver={microsoft access driver (*.mdb)}"
conn.execute strSQL
set conn=nothing
end if
end if
End Sub

但是为什么我打开网页,然后在关闭王爷,数据库的记录一直为空呢?不管是停留的时间长短,数据库一直没有记录。想请教一下论坛的各位大虾是什么原因?小弟不胜感激!!!
...全文
115 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sspanzervor 2008-03-27
但是为什么就是无法写入数据库呢?hookee前辈看这个程序有没有问题?
回复
hookee 2008-03-27
20分钟是服务器端session超时的事,客户端不需要停留20分钟
回复
sspanzervor 2008-03-27
实际上啊,这个是我在书里看到的例子,自己改了一下,但是为什么数据库老写不上东西啊。难道我打开的这个网站页面必须要停留20分钟以上吗?轻各位赐教。
回复
hookee 2008-03-27
最好是不要保存在session中,session_onend什么时候被触发时没办法控制的
可以在用户登录的时候就把信息存在数据库表online中(或缓存)
当用户访问一次就修改一次last_datetime
做一个服务或sql作业,每隔几分钟查询数据库(或缓存),
如果last_datetime和Now比较超出了一段时间就认为断线
则,从online中删除记录,并计算在线时间更改相关表。
回复
wpjwll 2008-03-27
up
回复
njtongfei 2008-03-27
获取cookies里面的ID 插入数据库
Request.Cookies("ID")
回复
sspanzervor 2008-03-27
但是这样我如果要往数据库里写入在cookies中储存的用户ID,应该怎么办呢?
回复
hookee 2008-03-27
c_member_no=request.cookies("UserID")
response.write dateStartTime
这两句在session超时的时候没有用吧, 此时没有当前用户了
默认情况下,session_onend是以匿名用户的身份运行的
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-03-27 03:36
社区公告
暂无公告