session都应该有过期的概念,无论保存在哪里。
既然要保证不重复登录,那么必然需要一个单点(至少对同一个用户来说)来保存session,数据库是很自然的选择,当然,并不是唯一的。
由于http是无状态的,所以至少要做两件事:
1、记录下用户最后一次活动的时间。
2、根据用户最后一次活动的时间判断session是否过期。
【 在 GreyTooWolf (灰太狼) 的大作中提到: 】
: 现在有一个系统,登录以后就在数据库中记录下状态为已登录。每次登陆前都要验证此状态为未登录。在用户退出时就在讲数据库中该列记为未登录。
: 现在存在一个问题,如果用户是用直接关闭浏览器的方式离开了,或者用户的浏览器崩溃了,那么用户退出时实际上数据库此列值未被修改,因此用户将永远无法再登陆。如何解决浏览器崩溃时依然可以让用户退出的问题。
: 另外我觉得在数据库中记录用户是否登录不是个好办法。有什么别的方法来解决单一登录的问题吗。
--
FROM 202.106.68.*