2014-02-08 102 views
0

我是Codeigniter的新手,仍然试图理解一些基础知识。在控制器_constructor中检查会话

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

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

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.php

行号: 6

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

希望听到一些反馈帮助。谢谢

回答

2

也许会话库没有加载。自动加载会话类array()位于application/config/autoload.php

例如,

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

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"; 
    } 

}