还是关于SESSION问题,大家讨论下,谢谢

bjblz 2004-08-30 11:29:57
1、用户登录系统后建立SESSION
2、同一用户不可在两处同时登录
3、用户正常退出或者非常关闭浏览器,都可以清空该用户的SESSION。

但是如果是客户端发生断电,死机这种情况,又要如何解决SESSION问题呢?必须要等到SESSION TIME OUT吗?

因为上面的2,如果SESSION不清空,那么用户就要等到 session time out后才到再次登录了!!
...全文
173 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
edhappy 2004-08-30
感觉 rttw(rttw) 说的有道理。
回复
bjblz 2004-08-30
To: spiritsl(梦雨心蓝)

这不是办法哦
回复
frieblade 2004-08-30
会生成新的SESSION吧
回复
spiritsl 2004-08-30
这样处理吧,
你把session 的时间设置的短一些,比如3秒,
然后让每一个页面每2.3秒发送一个简单请求。
:)
勉强处理你想要的情况。
回复
rttw 2004-08-30
原来的session等time out,但是用户同时也可以用一个新的session登陆,并不影响。在用户那层看来,死机,停电,和关掉浏览器重开的效果是一样的
回复
番茄妞 2004-08-30
我开一个能帮我解决一下吗
回复
番茄妞 2004-08-30
我现在也遇到这个问题,我是加了一个onlineuser来解决的,但听你们一说,我也觉得不对。
我的方法是
1。加入一个onlineuser表,用户登录时,把用户ID写进去
2。如果用户非法退出,我在登录页面设了一个注销键,用户输入用户名和密码,按注销,则清空该用户在onlineuser中的记录。
但是如果本来这个用户在线,另一个人用“注销”清空了他在线的记录,可那个人的session还是存在的。还是没有起到防止重登录的问题。

如何在清空了他在线记录的时候清空那个人的session?
回复
bjblz 2004-08-30
不好意思,最近上CSDN比较少,以前也没有仔细阅读过CSDN的手册

还想问下信誉分与什么相关?为什么我的分给扣了?
回复
xiangbo520 2004-08-30
楼主信誉分太低,不能信任,拒绝回答问题,知道也不告诉你。。
回复
番茄妞 2004-08-30
请问一下,怎么用session来判定是不是重登录啊?!
回复
zhaoqiubo 2004-08-30
顺便说一句,问问题的人,你的信誉值也太低了点,你是我见过的信誉值最低的人.
回复
zhaoqiubo 2004-08-30
另:用spiritsl(梦雨心蓝);你可以在后台启用一个守护线程,在超时的时间内,给客户端发送响应,或者让客户端发送请求;这样如果不非法退出session就不消失.一旦非法退出了.因为你超时的时间设置的比较短,那么就会超时.呵呵...这个方法比较好.
回复
aoplo 2004-08-30
rttw(rttw) zhaoqiubo(赵小刀)等老兄说的都有道理,用户第二次登录就将前次的session清除,就像qq一样。只管最近一次的登录,如果存在同一用户两次登录就给出提示,告诉他“您已经登录,这次登录将清除前一次的登录。”!
回复
zhaoqiubo 2004-08-30
如果用户登陆过,再次登陆就把前次的session清除。如果是用户非法退出,那清除就清除了。如果用户并非非法退出 。那为了控制只能一个登陆,第一个用户就session消失了。给他一个提示。但是这样是不好的。本来应该先入为主的。
回复
zhaoqiubo 2004-08-30
不如在用户第二次登陆的时候就把第一次的session清除;只不过要给用户一个提示.
回复
zhaoqiubo 2004-08-30
"你不会不用SESSION,在数据库中加一个表,叫onlineuser"

这种方法是不可行的,因为如果断电或者死机,你就并不知道用户已经离开.
spiritsl(梦雨心蓝) 说的对,如果想解决,现在我能想到的,就这么一种方法.目前为止,还没有找到其他的方法解决.
回复
番茄妞 2004-08-30
你不会不用SESSION,在数据库中加一个表,叫onlineuser
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-30 11:29
社区公告
暂无公告