Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter:routes.php中的会话类_Php_Codeigniter_Routes - Fatal编程技术网

Codeigniter:routes.php中的会话类

Codeigniter:routes.php中的会话类,php,codeigniter,routes,Php,Codeigniter,Routes,如何访问routes.php中的codeigniter会话类 我需要该类将所有请求(除了/登录)路由到某个控制器,除非用户具有管理员权限$this->session->userdata'logged' 所有路由规则都正常工作,我只需要访问该类。您通常无法从配置和路由文件访问Singleton$this->,因为此时未加载类 尽管访问会话有一些变通方法,但更好的方法是使用MY_控制器和_remap函数: 下面是一些示例代码,详细解释了它们的工作原理: 创建此MY_控制器并将其存储在applicat

如何访问routes.php中的codeigniter会话类

我需要该类将所有请求(除了/登录)路由到某个控制器,除非用户具有管理员权限$this->session->userdata'logged'


所有路由规则都正常工作,我只需要访问该类。

您通常无法从配置和路由文件访问Singleton$this->,因为此时未加载类

尽管访问会话有一些变通方法,但更好的方法是使用MY_控制器和_remap函数:

下面是一些示例代码,详细解释了它们的工作原理:

创建此MY_控制器并将其存储在application/core/中,然后让其他控制器扩展它:

<?php if (! defined('BASEPATH')) exit('No direct script access');

class MY_Controller extends CI_Controller {

function __construct() {
    parent::__construct();
    $this->_check_auth();
}

private function _check_auth(){
    if(!$this->session->userdata('is_admin')){
        $this->session->sess_destroy();
        redirect('login');
    }
}
}

注意:以上代码假设您已经有了用户登录系统。

为什么要在routes页面中使用session类。在路由中定义默认控制器,然后在默认控制器的构造函数中检查登录。问题是我已经将我的\u控制器用于管理后端。我正在建立一个启动前倒计时,除了管理员,所有的URL都必须指向该页面,在我的路由中我添加了这个伪代码:如果现在>启动日期| |用户是管理员{正常导航路由}否则{所有路由必须指向倒计时,除了登录}路由工作正常,我只需要检查管理员中存储的用户权限我不能使用我的_控制器,它用于管理员后端,请参阅我在原始帖子中添加的评论