我使用购物车类作为购物车。
现在我想使用 Simplelogin库,但登录时会删除购物车会话。
如何解决这个问题?
一个用户可以使用两个会话吗?
或者可能在同一个会话中合并所有内容?
答案 0 :(得分:1)
我不知道这是否会对你有所帮助,因为我不使用Code Igniter,也不知道那里的东西是如何处理的。
但是我通常在会话中使用一切的子阵列,所以没有vars有被覆盖的危险。所以如果我有一个登录脚本,它只会保存到$ _SESSION ['login'](例如$ _SESSION ['login'] ['password_hash'])
如果使用代码点火器无法实现,或者该库总是删除会话(哪种类型的库会执行类似的操作?),则必须将数据保存在其他位置。在登录表单中的隐藏表单字段中(不要忘记首先序列化数据)或在Cookie中。
答案 1 :(得分:0)
简单登录遵循一个非常常见的过程,在登录后重新创建一个新会话,因此必须在用户登录之前保存购物车数据。
你可以在Simplelogin的函数登录代码中看到:
//Destroy old session
$this->CI->session->sess_destroy();
//Create a fresh, brand new session
$this->CI->session->sess_create();
因此,在登录控制器中,您调用simplelogin->登录($ 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);
}
希望这会有所帮助