Php 如何在codeigniter中为一个用户使用两个会话?

Php 如何在codeigniter中为一个用户使用两个会话?,php,session,codeigniter,Php,Session,Codeigniter,我正在使用购物车的购物车类 现在我想使用Simplelogin库,但登录时会删除购物车会话 如何解决这个问题 是否可以为一个用户使用两个会话 或者可能在同一个会话中合并所有内容?我不知道这是否对您有帮助,因为我不使用代码点火器,也不知道如何处理那里的内容 但是我通常使用子数组来表示我在会话中所做的一切,所以没有变量会被覆盖。因此,如果我有一个登录脚本,它将只保存到$\u SESSION['login'](例如$\u SESSION['login']['password\u hash']) 如果使

我正在使用购物车的购物车类

现在我想使用Simplelogin库,但登录时会删除购物车会话

如何解决这个问题

是否可以为一个用户使用两个会话


或者可能在同一个会话中合并所有内容?

我不知道这是否对您有帮助,因为我不使用代码点火器,也不知道如何处理那里的内容

但是我通常使用子数组来表示我在会话中所做的一切,所以没有变量会被覆盖。因此,如果我有一个登录脚本,它将只保存到$\u SESSION['login'](例如$\u SESSION['login']['password\u hash'])


如果使用CodeIgniter无法做到这一点,或者该库总是删除会话(什么样的库会这样做?),那么您必须将数据保存到其他地方。无论是在登录表单中的隐藏表单字段中(不要忘记先序列化数据),还是在Cookie中。

简单登录遵循一个非常常见的过程,在登录后重新创建一个新会话,因此必须在用户登录之前保存购物车数据

您可以在Simplelogin的函数登录代码中看到:

     //Destroy old session
    $this->CI->session->sess_destroy();

    //Create a fresh, brand new session
    $this->CI->session->sess_create();
因此,在您的登录控制器中,您调用simplelogin->login($user,$password),您必须在登录之前保存,然后再恢复您的购物车,如下所示:

$savedCart = $this->cart->contents();
if ( $this->simplelogin->login($user, $password) ){
   // at this point the session has been regenerated, so 
   $this->cart->insert($savedCart); 
}

希望这有帮助

谢谢,我刚刚意识到,当我登录时,会话被删除,并创建了一个新会话。我刚才评论了两行。