codeigniter中的会话库

时间:2015-11-27 15:07:03

标签: php codeigniter session codeigniter-3

我想检查用户是否登录codeigniter并将其设置为config/routing.php nedded控制器作为默认值,并根据用户的访问级别重定向所有请求。

我在config/routing.php制作,直到现在这样:

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

我尝试使用$this->session->userdata(),但我发现错误,因为我认为config/autoload.php或会话是在config/routing.php之后加载的。

任何想法?

2 个答案:

答案 0 :(得分:2)

在codeigniter中加载会话,如下所示

$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';
}
在codeigniter中使用

,如命中,

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

答案 1 :(得分:0)

好的,我已经没有错误地工作了。我评论了system/libraries/Session/Session.php中的两行:

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

并添加到appliction/config/routes.php session_start()。它的工作没有错误。

我希望能帮助任何人。