2012-01-17 232 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

相關問題