2012-01-17 15 views
5

Bir e-ticaret web sitesi için Codeigniter ve Tank Auth kullanıyorum. Bir müşterinin ürünleri sepete koyarsa (Cart sınıfında yerleşik Codeigniter kullanarak) ve daha sonra sitede kaydederse oturumu onların sepeti ile birlikte kaybolursa (bunun bir sebepten dolayı yeni bir oturum oluşturduğunu sanıyorum) Aynı oturumun tutulması).Codeigniter ve Tank Auth kullanarak oturum verilerini nasıl saklayabilirim

Daha önce bu problemi gören var mı? ve gözden kaçırdığım basit bir çözüm var.

Teşekkür

+0

Web sitelerini görmekten sıkıldım, çünkü bu web sitesini görmekten yoruldum. –

cevap

3

Bildiğim kadarıyla en son kod göründüğü silinir delik oturumu logout() fonksiyonunda olduğu tek yer, Tank_auth.php Hattı gibi 118: Tank https://github.com/ilkon/Tank-Auth/blob/master/application/libraries/Tank_auth.php#L118

örnek kullanım Auth, ve reset_email() numaralı telefonlardan logout()'u kullanır. Bu yöntemler için kodunuzu kontrol edin. Ayrıca böyle bir şey için Tank Auth çıkış fonksiyonunu değiştirebilir:

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(); 
} 

... ve kullanımını böyle

: $ this-> tankauth-> çıkış (true);

+0

Ahhh evet, bunu tamamen kaçırmıştım! Mükemmel cevap, ve ek kodlar harika bir yardımdır.Çok teşekkür ederim! – BlueFox

+0

Başka bir not olarak bunun için, userdata ayarı da IF deyiminin içinde olmalıdır? Şu anda anahtar oturum verisini ayıklayacaktır. – BlueFox

+0

Aslında, şimdi logut işlevini auth.php Line 310 [link] 'den tamamen kaldırdım. https://github.com/ilkon/Tank-Auth/blob/master/application/controllers/auth.php#L310) Denenmiş ve test edilmiş işler harika .. – BlueFox

İlgili konular