2013-05-12 131 views
-2

需要删除特定用户的会话(当他被禁止时)。我知道session_id每5分钟重新生成一次。我们不在数据库中存储会话,可能只是每个用户的session_id。每次session_id变化或更好的解决方案时,我应该更新数据库吗?CodeIgniter通过ID删除特定会话

编辑:我认为,soulution可能是将数据存储在数据库中,并将my_session_id添加到每个会话中。然后我可以通过这个变量找到需要的会话。请评论这个解决方案,也许有一些没有在数据库中存储会话?

+0

禁用会话重新生成,将会话ID存储在数据库中,每次有用户请求时检查它。 – ahmad 2013-05-12 15:24:00

+0

尽管这不是最好的解决方案,但每当网页加载时我都会检查用户。这样,我确信我对数据库所做的每件事情都会在前端进行实时更改。 – machineaddict 2013-05-13 07:51:40

回答

1

那么,如果可能的话,我想建议你在用户表中存储session_id,否则将session_id与用户ID映射到一个单独的表中。

优势

  1. 当检查为有效的会话ID和用户ID用户登录,如果发现有活性的用户允许他别的重定向到登录页面。
  2. 注销u可以清除或销毁会话ID。
  3. 创建一个通用函数来验证用户和会话ID。
  4. 从助手中调用这个常用函数,不管天气如何,如果验证的方法继续执行操作,则重定向到登录,则调用任何方法。

注意 - 我曾经历过这个,因为我对在线酒店预订的工作,每当ü命中服务器目前的酒店预订它用于返回与实时价格,客房等,这是基于存储的实时数据记录的用户会话ID,如果他注销他的搜索将从数据库中删除。