2015-11-27 108 views
0

我想檢查用戶是否在codeigniter中登錄並將此設置爲config/routing.php作爲默認的nedded控制器,並根據用戶的訪問級別重定向所有請求。codeigniter中的會話庫

我做出config/routing.php到現在爲止是這樣的:

if ($_SESSION['loggedin'] == TRUE){ 
    $route['default_controller'] = $_SESSION['class']; 
    $route['(.*)']    = $_SESSION['class']."/$1"; 
} else { 
    $route['default_controller'] = 'first'; 
} 

我tryed與$this->session->userdata()但我recive錯誤,因爲我覺得config/autoload.php或會話config/routing.php後加載。

任何ideeas?在笨

回答

2

加載會話這樣

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

但其更好地autoload.php加載。

它不是$_SESSIONS其笨$_SESSION

if ($_SESSION['loggedin'] == TRUE){ 
    $route['default_controller'] = $_SESSION['class']; 
    $route['(.*)']    = $_SESSION['class']."/$1"; 
} else { 
    $route['default_controller'] = 'first'; 
} 

使用像命中,

if($this->session->userdata("loggedin") == TRUE) 
{ 
    $route['default_controller'] = $this->session->userdata("class"); 
    $route['(.*)'] = $this->session->userdata("class")."/$1"; 
} else { 
    $route['default_controller'] = 'first'; 
} 
+0

對不起,錯誤,但是當我使用這是它給了我這個錯誤消息:未定義的變量:_SESSION' – Cosmin

+0

檢查編輯... –

+0

好吧,我也試過這也:)我recived'消息:未定義的屬性: CI_Router :: $ session'我認爲是因爲在會話庫之前加載了config/routes.php – Cosmin

0

好吧,我已經做出沒有錯誤的工作。我有評論兩行從system/libraries/Session/Session.php

session_start(); (Line:140) 
ini_set('session.use_trans_sid', 0); (Line:313) 

,並添加到appliction/config/routes.phpsession_start()。它適用於錯誤。

我希望能幫助任何人。