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