首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Codeigniter: routes.php中的会话类

Codeigniter: routes.php中的会话类
EN

Stack Overflow用户
提问于 2013-02-11 20:12:36
回答 2查看 2.1K关注 0票数 1

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

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

所有的路由规则都在工作,我只需要访问那个类。

EN

回答 2

Stack Overflow用户

发布于 2013-02-11 20:27:42

您通常无法从配置和路由文件访问Singleton ($this->),因为此时没有装入类

尽管有一些解决方法可以访问会话,但更好的方法是使用MY_Controller & _remap()函数:

http://ellislab.com/codeigniter/user-guide/general/controllers.html#remapping

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

http://www.codebyjeff.com/blog/2012/11/ci-_remap-function-the-friend-you-never-knew-you-had

票数 0
EN

Stack Overflow用户

发布于 2013-02-11 21:02:14

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

代码语言:javascript
运行
复制
<?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');
    }
}
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14811599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档