is_logged_in检查每一页

时间:2013-09-13 21:47:45

标签: php codeigniter

我正在使用CodeIgniter。我有一个名为abc的控制器,我的函数名为indexabc

www.example.com/abc/

我希望该用户只能访问他登录的区域。

www.example.com/abc/                    //if loggged in else back to homepage

 www.example.com/abc/a/                    //if loggged in else back to homepage

现在检查登录。我用:

if($this->auth->is_logged_in()) { .. } else { redirect('/'); }

单独的每个功能。

还有其他办法吗?

2 个答案:

答案 0 :(得分:2)

我认为你可以通过覆盖构造函数并在其中调用函数来完成此任务。

<?php
class Blog extends CI_Controller {

       public function __construct()
       {
            parent::__construct();
            // check login
       }
}
?>

答案 1 :(得分:1)

对于特定的控制器,您可以将if检查放入控制器的constructor,以便在调用控制器的任何方法时,它将通过您的if检查

class Abc extends CI_Controller {

       public function __construct()
       {
            parent::__construct();
            //your if goes here
       }
}

如果您想检查用户是否已在整个应用程序中登录,您可以使用__construct()的构造函数方法CI_Controller,以便在用户访问其中的任何控制器时进行验证你的申请

class CI_Controller {

    private static $instance;

    /**
     * Constructor
     */
    public function __construct()
    {
           //your if goes here

    }

 }