检查Controller _constructor中的会话

时间:2014-02-08 16:02:23

标签: codeigniter constructor

我是Codeigniter的新手,仍然试图了解一些基础知识。

我正在建立一个注册/登录系统。一切都很好。

我正在创建一个控制器来显示用户信息。在此之前,我想检查会话是否存在以及用户是否已登录,如果不是,我想重定向到站点根目录。

class Myprofile extends CI_Controller {
    function __construct()
    {
        $user_data = $this->session->userdata('user_data');

        $user_data['logged_in'] = isset($user_data['logged_in']) ? $user_data['logged_in'] : null; 

        if($user_data['logged_in'] != 1){ 
            redirect();
        }
    }

    public function index(){
        redirect("myprofile/info");

    }

    public function info(){     
        echo"here I'll ave my info";
    }

}

问题是我得到的错误。看起来我无法在脚本的构造部分看到会话。

  

遇到PHP错误

     

严重性:注意

     

消息:未定义属性:Myprofile :: $ session

     

文件名:controllers / myprofile.php

     

行号:6

这将是最好的解决方案,否则我需要在所有功能上使用相同的代码。

希望听到一些反馈意见。感谢

2 个答案:

答案 0 :(得分:2)

可能未加载会话库。在位于array()

的自动加载application/config/autoload.php上添加会话类

例如

$autoload['libraries'] = array('database', 'session', 'output');

答案 1 :(得分:0)

class Myprofile extends CI_Controller {
    function __construct()
    {
        $this->load->library('session');
        $user_data = $this->session->userdata('user_data');

        $user_data['logged_in'] = isset($user_data['logged_in']) ? $user_data['logged_in'] : null; 

        if($user_data['logged_in'] != 1){ 
            redirect();
        }
    }

    public function index(){
        redirect("myprofile/info");

    }

    public function info(){     
        echo"here I'll ave my info";
    }

}