2014-04-12 155 views
0

我剛安裝了Codeigniter HMVC,我非常喜歡它的工作方式,但我對它很陌生。我的問題是我將如何檢查登錄?我知道我必須創建一個登錄模塊。然後我進入核心文件夾並將其添加到MX_Loader中Codeigniter登錄系統HMVC

function __construct(){ 
    $this->load->helper('url'); 
    redirecht('login'); 
} 

但它不能識別helper命令。難道我做錯了什麼?我想檢查此頁面上的會話,如果會話不存在,我想將其重定向到登錄模塊。我該如何做到這一點?

在此先感謝

+1

你看到你輸入「redirecht」?如果你想檢查每個控制器上的登錄,你可以在「core」文件夾中添加一個MY_Controller,然後擴展它。這是最簡單的方法。 –

+0

我確實擴展了MY_Controller,但它沒有對它做出反應。如果我在其中鍵入重定向('登錄'),例如它不會做任何事情。儘管如果我在其中鍵入錯誤,它確實會給我帶來錯誤。對於錯字我糾正了它。 –

回答

0

爲此,您必須包含/自動加載會話庫。

在您登錄控制器試試下面的例子中..

打開「應用程序/配置/ autoload.php文件,並設置以下。

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

(在你確認用戶帳戶存在在數據庫中),一旦你與數據庫驗證完成後,添加以下行

$session_array = array('admin_id' => "1",'username' => "admin"); // here the "1" and the string "admin" are just for example. modify the array key and value as per your requirement. 
$this->session->set_userdata('user_logged_in', $session_array); 
redirect('admin/dashboard', 'refresh'); 

通過此行,會話將被添加到應用程序。佛在您的函數__construct中,添加下面的行。

function __construct() { 
    parent::__construct(); 
    if(!$this->session->userdata('user_logged_in')){ 
    redirect('login'); 
    } 
} 

希望這會有所幫助。

+0

感謝它是有用的,但不是我真正想要的。 VincentDecaux實際上回答了我的問題。 –