2015-11-27 76 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()。它适用于错误。

我希望能帮助任何人。