CodeIgniter中的会话出错

时间:2015-08-01 18:03:04

标签: php codeigniter session codeigniter-2

以下代码段返回错误,但是当没有SESSION时错误会消失。

以下是错误引用的行:

$user_id = $this->session->userdata('user_id');

以下是包含在上一行中的类定义:

class Dashboard extends CI_Controller
{

    public function _construct()
    {        
        parent::_construct();
        $user_id = $this->session->userdata('user_id');
        if(!user_id){
            $this->logout();
        }
    }


    public function index()
    {        
          $this->load->view('dashboard/inc/header_view');
          $this->load->view('dashboard/dashboard_view');
          $this->load->view('dashboard/inc/footer_view');
    }

    public function logout()
    {
        $this->sess_destroy();
        redirect('/');
    }

}

我做错了什么?

4 个答案:

答案 0 :(得分:1)

请确保您已加载会话库。

$this->load->library('session');

答案 1 :(得分:0)

登出退出功能

$this->sess_destroy();

的位置

替换为$this->session->sess_destroy();,因为您遗漏了session

确保已加载$this->load->library('session');

public function _construct() {        
    parent::_construct();

    $this->load->library('session'); // Or Autoload it.

    if ($this->session->userdata('user_id') == FALSE) {
        $this->logout();
    }
}

答案 2 :(得分:0)

首先加载会话库。在方法之一下加载会话使用。

 public function _construct()
    {        
        parent::_construct();
        $this->load->library('session');
        $user_id = $this->session->userdata('user_id');
        if(!user_id){
            $this->logout();
        }
    }

config/autoload.php

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

答案 3 :(得分:0)

是的,谢谢Abdula,wofgang,wyz现在没问题,dashboard.php(控制器)中没有错误,但是在user.php(控制器)中错误:

这是user.php中的错误:

遇到PHP错误

严重性:注意

消息:未定义属性:User :: $ user_model

文件名:controllers / user.php

行号:19

回溯:

文件:C:\ wamp \ www \ apcodeigniter \ application \ controllers \ user.php 行:19 功能:_error_handler

文件:C:\ wamp \ www \ apcodeigniter \ index.php 行:292 功能:require_once

错误行:

$data = $this->user_model->get(1);

和行:

$result = $this->user_model->delete($user_id);

和错误第19行:

 $result = $this->user_model->get([
       'login' => $login,
       'password' => hash('sha256', $password . SALT)
   ]);