【问题标题】:Check if a PHP SessionID is in use?检查是否正在使用 PHP SessionID?
【发布时间】:2011-10-07 12:53:08
【问题描述】:

在我的一个项目中,我在数据库中存储了一个带有 sessionId 的临时数据,如果它的 sessionId 未使用,我必须删除它们,有没有一种简单的方法来检查会话 ID 是否正在使用?

【问题讨论】:

标签: php session timeout sessionid


【解决方案1】:

存储上次访问的时间戳,并删除时间比当前时间早 X 分钟的行。

【讨论】:

    【解决方案2】:

    您可以使用 session_name ([ string $name ] ) 命名您的会话,

    例如:session_name('myname'),

    然后使用 session_id ([ string $id ] ) 检查是否有该名称的会话 id,

    示例:

    if(session_id('myname') != "")
           echo session_id('myname');
             else
          //your code here
    

    【讨论】:

      【解决方案3】:

      有没有一种简单的方法来检查会话 ID 是否正在使用中?

      如果您使用默认会话处理程序,则检查会话文件是否存在并且自 time()-session_cache_expire() 以来已被修改。

      但是,更好的解决方案是使用数据库绑定会话处理程序。当尝试从会话外部查看会话数据时,这更加灵活,您可以只做一个简单的连接来查找匹配的数据,但解决问题的正确方法是在会话处理程序中实现会话管理代码(即删除会话时删除数据)!

      【讨论】:

      • 非常感谢您的回答,我有好主意,非常感谢:)
      猜你喜欢
      • 2011-09-06
      • 1970-01-01
      • 2011-04-21
      • 2017-07-06
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      相关资源
      最近更新 更多