通过会话ID检查会话的状态

时间:2014-09-15 06:09:12

标签: php session

我已经查看了一些类似帖子checking status of session with session idHow to tell if a session is active?的帖子,但它们似乎并不具体到我想要实现的目标。< / p>

我正在构建一个购物车,用户可以使用$_SESSIONsession_id()添加到该购物车,无论他们是否已登录。

向购物车添加商品会使用会话ID将条目添加到购物车表。

长话短说,如何从会话ID列表中找出哪些会话处于活动状态,哪些会话处于活动状态(用于crontab),以便从数据库中的购物车表中删除多余的项目? / p>

1 个答案:

答案 0 :(得分:0)

如果您有足够的权限,可以使用SessionHandler执行此操作。 (适用于PHP&gt; 5.4.0)

class MySessionHandler extends SessionHandler
{    
    public function __construct()
    {
        // database initialization code
    }

    public function destroy($id)
    {
        $ret = parent::destroy($id);
        // database uninitialization code
        return $ret;
    }
}

然后在你的代码中:

ini_set('session.save_handler', 'files');
$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

在使用之前,我建议您仔细阅读我上面链接的文档。


但是,由于您正在构建购物车,因此将购物车信息存储在会话变量中会更容易。