如何访问routes.php中的codeigniter会话类?Codeigniter:routes.php中的session类
我需要该类将所有请求(除/登录)路由到某个控制器,除非用户具有管理员权限($this->session->userdata('logged')
)。
所有的路由规则都在工作,我只需要访问那个类。
如何访问routes.php中的codeigniter会话类?Codeigniter:routes.php中的session类
我需要该类将所有请求(除/登录)路由到某个控制器,除非用户具有管理员权限($this->session->userdata('logged')
)。
所有的路由规则都在工作,我只需要访问那个类。
你通常不能够从配置&路线文件,因为类不是在这一点上
装虽然有一些变通方法来访问会话访问辛格尔顿($这个 - >),在更好的方式是到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
创建此MY_Controller
并将其存储在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');
}
}
}
注:上面的代码假定您现在已经有一个用户登录系统。
我无法使用MY_Controller,它用于管理后端,请参阅我在原始文章中添加的评论 – user1491124 2013-02-11 16:40:07
为什么要在路由页面中使用会话类。在路由中定义一个默认控制器,然后在默认控制器的构造函数中检查登录。 – ripa 2013-02-11 12:27:35
问题是我已经使用MY_Controller作为管理后端。 我正在构建一个预发布倒计时(所有的网址都必须指向该页面,除了管理员),并且在我的路由中添加了这个(伪代码): 'if(now> launch of the date || the the用户名为admin){正常导航路由} 其他{所有路由必须指向倒计时,除了登录}' 这些路由工作正常,我只需要检查用户权限(存储在admin中) – user1491124 2013-02-11 16:38:59