以下代码段返回错误,但是当没有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('/');
}
}
我做错了什么?
答案 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)
]);