2012-01-17 100 views
5

我使用Codeigniter和Tank Auth作为电子商务网站。我发现如果客户将物品放入购物车(使用建立在购物车类中的Codeigniter),然后在网站上注册,则会话随购物车一起丢失(我假设它由于某种原因而生成新会话保持同一届会议)。如何使用Codeigniter和Tank Auth保留会话数据

有没有人遇到过这个问题?并有一个我忽略的简单解决方案。

感谢

+0

Upvoted,因为我厌倦了看到网站这样做 – 2012-01-17 15:40:15

回答

3

至于最近的代码看起来,唯一的地方被删除孔会话处于logout()功能,Tank_auth.php行118: https://github.com/ilkon/Tank-Auth/blob/master/application/libraries/Tank_auth.php#L118

的例子坦克的使用Auth在activate()reset_email()中使用logout() - 请检查您的代码是否包含这些方法。你也可以改变战车验证登出功能是这样的:

function logout($keep_session = false) 
{ 
    $this->delete_autologin(); 

    // See http://codeigniter.com/forums/viewreply/662369/ as the reason for the next line 
    $this->ci->session->set_userdata(array('user_id' => '', 'username' => '', 'status' => '')); 

    if(!$keep_session) 
     $this->ci->session->sess_destroy(); 
} 

......而像这样使用函数:$ this-> tankauth->注销(真);

+0

啊啊是的,我完全错过了这个完美的答案,并且额外的代码也是一个很好的帮助,非常感谢你!! – BlueFox 2012-01-24 11:45:59

+0

作为进一步的笔记对此,用户数据的设置是否也应该在IF语句内部?因为它现在正在解除关键会话数据。 – BlueFox 2012-01-24 11:58:10

+0

实际上,我现在已经完全从auth.php中删除了注销功能。 https://github.com/ilkon/Tank-Auth/blob/master/application/controllers/auth.php#L310)。试过并测试过的作品很好。 – BlueFox 2012-01-24 12:10:34

相关问题