×××令人窒息的问题!我实在没分了,望各位大哥给个面子进来看看吧,谢谢!×××

TaoTaoYou 2006-07-11 05:57:05
这个问题我开了五个贴,至今没有人能给出成熟答案。都只是嘴头简要描述,没有具体施实方法!
如果您也是这样的话,兄弟冒昧了,请您不要回复了,谢谢合作!

现在我开始描述问题:
我有个会员管理系统,user表里存储着成千上万的用户,User.asp文件里从user表里读出了所有会员的名字。login.asp文件为登录页,用户A通过登录页成功进入了本系统,那么他的名字将在User.asp文件呈红色显示,如果他点击退出或Session超时,或没有登录均用灰色显示,谢谢!
问题描述完毕!

下面是小弟在另外的贴子里得到的不完善答案:
1:有人说你在数据库里设置个状态字段,隔段时间判断其状态,如果为1则是登录,如果为0则为没有登录。
我说:对于这样回答的人我想说,假如张三登录时我在状态字段里写入了1,当他正常退出的时候我将其改为0,是这样做没问题。可是你有没有想到,他如果不正常退出呢,他关掉浏览器或者关了本页,这个时候我怎么办?我是不是让他的状态字段永远处于登录?? 还有人说当Session超时时可以改变其状态,老大Session都超时了,我如何捕捉该用户,我用什么条件去数据库里改其状态?小弟笨望那位大哥给予指导,谢谢。
2:有人说可以用Session_Onstart与Session_OnEnd
凡是回答用这种办法的人,都有这样的习惯:
Sub Session_Onstart
在这里写代码吧,
End Sub
拜托老大你想让我在里面写什么?我学ASP也有些时日了我对Session_Onstart也是有些了解的!


请各位恕小弟笨拙,理解能力也较低,望各位大哥在回答问题时尽量详细些,能给例子尽量给个例子小弟感激不尽!
...全文
351 27 打赏 收藏 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
TaoTaoYou 2006-07-15
  • 打赏
  • 举报
回复
up
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
大哥你快出现啊!
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
to: mrshelly(Shelly)

我已发短消息给你,回复我之后我给你FTP 或留下你的联系方式,谢谢!
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
大哥我的数据库是Access,链接数据库干吗?给实用代码行不?
  • 打赏
  • 举报
回复
你的是ac数据库还是sql数据库?

如果是ac数据库的话

application_onstart
application("dbstr")="driver.........." & server.mappath(...) 保存一下路径


Sub Session_OnEnd
声明conn
open 连接串 如果是sql的数据库直接写,ac的用application上边那个
sql语句是表明下线的那句

End Sub
煊烨 2006-07-12
  • 打赏
  • 举报
回复
放一个在线表。
记录每一个在线的人员
包括如下信息,
登录Userid,sessionid,上次操作的时间 ,删除长时间不操作的人

每个页面包含一段代码。 应该会牺牲一些性能。 不过也不会太厉害

简单的代码描述如下:
remoteaddr=request.ServerVariables("REMOTE_ADDR")
set rs=server.CreateObject("adodb.recordset")
sql="select * from online where ip='"&remoteaddr&"' and sessionid='"&session.sessionid&"'"
rs.Open sql,Conn,1,3
if rs.eof then
strsplit=split(Request.Servervariables("HTTP_USER_AGENT"),";")
strsplit(1)=replace(strsplit(1),"MSIE","Internet Explorer")
strsplit(2)=replace(strsplit(2),")","")
strsplit(2)=replace(strsplit(2),"NT 5.1","XP")
strsplit(2)=replace(strsplit(2),"NT 5.0","2000")
strsplit(2)=replace(strsplit(2),"NT 5.2","2003")
strsplit(1)=Trim(strsplit(1))
strsplit(2)=Trim(strsplit(2))
rs.addnew
rs("ip")=remoteaddr
rs("username")=session("userid")
rs("sessionid")=session.sessionid
rs("browse")=strsplit(1)
rs("opratesystem")=strsplit(2)
rs("starttime")=now
rs("username")="访客"
else
rs("starttime")=now
if session("userid")<>"" then
rs("username")=session("userid")
end if
end if
rs.update
rs.close
conn.execute("delete from [online] where DateDiff('s',starttime,Now)>300")
mrshelly 2006-07-12
  • 打赏
  • 举报
回复
请给ASP环境。我写个示例。
手头没有ASP环境
cestar2005 2006-07-12
  • 打赏
  • 举报
回复
tipboy() ( ) 信誉:100
session on start
----------------
dim user'当前登陆用户的ID
user=rs("user")
application(user)="1"
-----------------------
session on end
---------------------
application(user)=0
这位兄台都写的很明了了,这样都要以实现你的要求,你只要读出application(user)判断1,0值就行了,分别显示你的不同状态...

TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
up
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
我理解的是没错各位大哥,可我实在不知道怎样施实,,我笨啊我,,唉,
Sub Session_Onstart
那位大哥描述一下,我在这里写什么,就是在这里我具体做些什么,根据什么做些什么,谢谢,
End Sub

Sub Session_OnEnd
在这里我写什么,为什么这样写,谢谢,
End Sub
既然各位老大都觉得如此简单,我就拜托您花个二分钟时间给小弟讲讲其实现原理好吗,我感激您,我谢谢您!
phuson 2006-07-12
  • 打赏
  • 举报
回复
Session_OnEnd的事件,当一个Session结束时,或超时以后,触发该事件,,小弟是这样理解的啊,还望大哥再指教!

=====这样理解没错。只是如果是不正常退出,只有当Session超时才触发该事件。
任亚军 2006-07-12
  • 打赏
  • 举报
回复
session on start
----------------
dim user'当前登陆用户的ID
user=rs("user")
application(user)="1"
-----------------------
session on end
---------------------
application(user)=0
slayerbb 2006-07-12
  • 打赏
  • 举报
回复
..说了那么明白了。。
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
老大们说话呀,小弟笨拙呀,,555555555555555555
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
在那里写,就在Session_Onstart与Session_OnEnd事件里写吗,,谢谢!
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
你不回答问题没关系,大哥你别刺激我啊,这样会给以后的技术生涯带来阴影的,你这一句话不要紧,我晚饭会少吃的,唉,,,
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
楼上这位仁兄一根筋是何意,意思是说我不动脑子是不???
煊烨 2006-07-12
  • 打赏
  • 举报
回复
一根筋 懒得说
mrshelly 2006-07-12
  • 打赏
  • 举报
回复
呵呵,你真够性急的。手头上有点急事要处理。 我慢慢给你写好了。
ASP语言不熟。都是翻手册写代码的。
TaoTaoYou 2006-07-12
  • 打赏
  • 举报
回复
问题仍未能得到解决,继续等达人出现!
加载更多回复(7)

28,402

社区成员

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

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