2013-09-26 89 views
1

上生成新的會話在每一頁上我看到了新的會話與空的userdata笨會話的每個頁面

產生在模型構建

$this->config->set_item('sess_table_name', 'xx_sessions'); 

因爲我想這屆存儲在另一個表因爲其他會話表被用於另一個登錄活動

登錄功能

function login($username,$password) 
{ 

    $this->db->where('login',$username); 
    $this->db->where('pass',$password); 
    $q=$this->db->get('prof'); 
    // print $this->db->last_query(); 

    if($this->db->count_all_results()) 
    { 
     $arr=$q->row(); 

     // creating the session 
     $this->session->set_userdata('login',$arr->id); 
     $this->session->set_userdata('prof',$arr->profile_id); 
     // print_r($arr); 
    } 
    else 
     return FALSE; 
} 

此登錄功能在模型上。登錄並生成會話後,頁面重定向到另一個頁面,在該頁面上,我看到會話生成沒有任何問題,但是當我移動到另一個頁面時,會話隨用戶數據一起丟失。

我用下面的函數來檢查會話數據

function print_session() 
    { 
     print_r($this->session->all_userdata()); 
    } 

我哪裏錯了? Tank_auth圖書館和ion_auth庫工作得很好。我已經使用了

+0

你自動加載Session庫? –

+0

@shuvo我在模型構造函數中加載會話庫 –

回答

2

session庫名到磁帶自動加載機的配置,在application/config/autoload.php:

$autoload['libraries'] = array('session'); 

然後在每個控制器的自動提供無處不在您的應用程序和你從任何地方得到您的會話數據:

$session_id = $this->session->userdata('session_id'); 

如果你不想自動加載會話庫,那麼你必須在你的對照手動初始化會話類奧勒構造,使用$this->load->library功能:

$this->load->library('session'); 

詳細看看這裏:可變http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

+0

它工作!謝謝! –

+0

@AH,非常歡迎 –

1

編輯/application/config/config.php,並設置Cookie域

$config['cookie_domain'] = ".yourdomain.com"; 

它會工作!

.yourdomain.com使Cookie可用於整個域及其子域。

0

我遇到了同樣的問題,我搜索了很多頁面。 我想通了,改變sess_cookie_name解決了這個問題(新會話產生問題)

$配置[「sess_cookie_name」] =「somenewname」