【问题标题】:Error with sessions in CodeIgniterCodeIgniter 中的会话错误
【发布时间】:2015-08-01 18:03:04
【问题描述】:

下面的sn-p返回错误,但是没有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('/');
    }

}

我做错了什么?

【问题讨论】:

  • 请提及错误信息。如果没有错误消息,就不可能知道你做错了什么。
  • 缺少会话库

标签: php codeigniter session codeigniter-2


【解决方案1】:

请确保您已加载会话库。

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

【讨论】:

    【解决方案2】:

    关于您的注销功能

    $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();
        }
    }
    

    【讨论】:

      【解决方案3】:

      首先加载会话库。要加载会话,请使用以下方法之一。

       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');
      

      【讨论】:

        【解决方案4】:

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

        这是 user.php 中的错误:

        遇到了 PHP 错误

        严重性:通知

        消息:未定义的属性:用户::$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)
           ]);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-09-22
          • 1970-01-01
          • 2016-10-14
          • 2012-10-07
          • 2018-04-07
          • 2017-02-13
          • 2013-02-08
          • 1970-01-01
          相关资源
          最近更新 更多