2016-01-29 97 views
2

你能解釋一下在控制器之間傳遞會話數據的方法嗎?在CodeIgniter中?控制器之間通過會話

因爲如果我有

$data = array('email' => $this->input->post('email'), 
            'is_logged_in' => true); 
     $this->session->set_userdata($data); 

在Pippo.php控制器我不能「在另一個控制器使用會話,我需要檢查是否「is_logged_in」設置爲true,以創建成員的網頁。

+0

給定的代碼看起來很完美。你可以請你與我們分享'pippo.php'代碼你在哪裏使用會話?你確定要加載會話類嗎? –

+0

一旦你設置了會話,你可以在整個項目中使用它 –

+0

使用'$ this-> session-> all_userdata()'應該檢索關聯數組中的所有會話數據。將它重寫爲$ this-> session-> set_userdata('mydata',$ data)'。 –

回答

2

首先我會自動加載會話庫。

然後在您的登錄控制器的成功部分

$data = array(
     'email' => $this->input->post('email'), 
     'is_logged_in' => true 
); 

$this->session->set_userdata($data); 

然後,一旦你設置了會議,並已重定向到控制器

在你parent::__construct()區域控制器。

public function __construct() { 
    parent::__construct(); 

    if ($this->session->userdata('is_logged_in') == false) { 
    redirect('logout_controller'); 
    } 
} 
+0

它的工作原理! ty但是什麼父:: __ contruct();手段? – Psygno

+0

看看這個http://www.codeigniter.com/user_guide/general/controllers.html#class-constructors – user4419336