簡體   English   中英

Codeigniter:routes.php中的會話類

[英]Codeigniter: session class in routes.php

如何訪問routes.php中的codeigniter會話類?

我需要該類將所有請求(/ login除外)路由到某個控制器,除非用戶具有管理員權限( $this->session->userdata('logged') )。

所有路由規則都有效,我只需要訪問該類。

通常,您無法從config&routing文件訪問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

創建此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');
    }
}
}

注意:上面的代碼假定您已經有一個用戶登錄系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM