0

我只想向授权用户授予访问权限,所以我在构造方法中编写了身份验证代码这是我的代码

class cp extends CI_Controller {

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

    public function this_mustbe_admin()
    {

        $this->load->model('m_cp');
        $md = $this->m_cp->is_admin();
        if($md)
         return $md;
        else
        {
            redirect(base_url().'cp/login/');
        }

    }

    function login()
    {   
             $this->load->view('admin/login');

    }

但我得到错误

The page isn't redirecting properly

如果我this_mustbe_admin从构造中删除方法并将其放在其他控制器上它工作正常

function do_stuff(){

   $this->this_mustbe_admin();
   // do stuff 

}

但是这样我必须在我的每一种方法中都写出来

4

2 回答 2

3

你做循环重定向。一个虚构的堆栈跟踪:

  1. http 请求到/cp/
  2. __construct()
  3. this->this_mustbe_admin()-> 重定向到 /cp/login
  4. http 请求到/cp/login
  5. __construct()
  6. this->this_mustbe_admin()->转到 3。

__construct在执行重定向生成命令之前,您必须检查您尝试执行的方法。

if (!$this->router->method != 'login') {
    $this->this_mustbe_admin();
}
于 2012-08-03T16:59:47.400 回答
0

试着这样写

redirect('base_url(cp/login)');

我希望它会起作用……或者干脆给

redirect('cp/login');

因为我是这样使用的

于 2012-08-21T11:35:07.123 回答