用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3418|回复: 4
收起左侧

[HELP] 关于用户登录状态

[复制链接]
发表于 2010-6-11 01:04:37 | 显示全部楼层 |阅读模式
function index()
{
  if ($this->admin_islogin())
  {
   redirect('去成功后页面');
  }
  $this->load->view('视图');
}

function admin_islogin()
{
  //详细代码不贴了
  //通过COOKIE读取用户资料,如果OK就返回登录成功,不然跳转到登录页
}

我想问的是如何将 admin_islogin() 这个方法用于所有的控制器中
不然我每个控制器中都写一段这方法觉得没有必要,不用CI的话,我全写在一个php文件中,然后包含进来就可以了。
我是新手,请大家出出主意,谢谢。
发表于 2010-6-11 07:24:07 | 显示全部楼层
本帖最后由 haohailuo 于 2010-6-11 07:26 编辑

你可以把判断的代码放在公共函数库中,或者可以自己扩展一个父类继承Controller类,然后再继承此类即可,例如:
PHP复制代码
 
class Ha_Controller extends Controller {
        /**
         * @var Admin
         */

        public $admin;
        /**
         * @var Hcache
         */

        public $hcache;
        /**
         * @var Common
         */

        public $common;
        /**
         * @var Utility
         */

        public $utility;
        /**
         * @var Filemanagement
         */

        public $filemanagement;
       
    protected function __construct() {
                $this->Ha_Controller();
    }
   
    function Ha_Controller(){
        parent::Controller();
               
                /** 加载验证库 或者方法,验证是否登录等*/
                $this->load->library('admin');
               
                /** 加载后台控制器公共库 */
                $this->load->library('form_validation');
 
                /** 加载后台控制器公共模型 */
                //$this->load->model('common_model');
 
               /*其他类库或者方法*/
              ............
    }
}
 
复制代码

使用demo如下:
PHP复制代码
 
class Main extends Ha_Controller {
       
        var $uid;
        var $now;
        var $username;
        var $template = array();
       
        function __construct(){
                $this->Main();
        }
       
        function Main() {
                parent::Ha_Controller ();
               
                //$this->output->enable_profiler();
        }
       
        function index(){
                if ($this->admin->islogin()) {
                    redirect('去成功后页面');
                }
                $this->load->view('precinct/index', $this->template);
        }
}
 
复制代码
 楼主| 发表于 2010-6-11 15:38:16 | 显示全部楼层
谢谢haohailuo
对于类的继承还搞不太明白,略有些明白;
发表于 2010-6-12 09:53:38 | 显示全部楼层
我一般是写在辅助函数里.再在构造函数里调用..
别拘束于是否像原生php里的require就可以了..
require也是一句,$this->helper->method也是一句...
发表于 2013-3-29 14:36:52 | 显示全部楼层

本版积分规则