2014-04-12 81 views
0

我正在面對CodeIgniter 2.1.4會議中的一個非常奇怪的錯誤。我將加密會話存儲到數據庫中。 config.php中會話的以下配置如下:Codeigniter - 隨機註銷

$config['sess_cookie_name']  = 'club_session'; 
$config['sess_expiration']   = time()+(60*60*24); //expire in one day 
$config['sess_expire_on_close'] = FALSE; 
$config['sess_encrypt_cookie']  = TRUE; 
$config['sess_use_database']  = TRUE; 
$config['sess_table_name']   = 'session'; 
$config['sess_match_ip']   = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update']  = 300; 

我在config.php文件中也設置了一個加密密鑰。

當成功後續會話邏輯成員日誌進行:

$session_data = array(
    'member_login_state' => TRUE, 
    'memberID' => $memberID 
); 
$this->session->set_userdata($session_data); //set member 

當成員註銷:

$session_data = array(
    'member_login_state' => '', 
    'memberID' => '' 
); 
$this->session->unset_userdata($session_data); //unset member 

我已經擴展了是CI_Controller用下面的方法:

public function member_is_logged_in() 
{ 
    if ($this->session->userdata('member_login_state') == FALSE) 
    { 
     redirect('member'); //redirect to member login 
    } 
} 

一旦成員登錄到每個授權服務器的控制器如果我訪問這些擴展控制器的任何方法時沒有登錄我將被重定向到登錄頁面

class Hub extends MY_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     $this->member_is_logged_in(); // check member is logged in 
    } 

    //methods below..... 
} 

現在:EAS的成員延伸,就像下面。登錄時,我可以在幾個輸出不同視圖的不同方法之間導航,並自動註銷並重定向回登錄頁面。這可能隨時發生,例如1分鐘,2分鐘10分鐘。

我真的很爲難,任何幫助,將不勝感激

謝謝...

+0

[檢查這個(http://www.mattwillo.co.uk/blog/2010-08-23/codeigniter-database-session-fix/),它可以幫助你。 –

+0

這不會真的幫助我的問題,我不想重寫我的整個會話控制並添加另一個庫。 – Random

回答

0

我的用戶代理匹配時遇到過類似的問題。改爲嘗試在IP上進行匹配。

$config['sess_match_ip'] = TRUE; 
$config['sess_match_useragent'] = FALSE;