Codeigniter自动加载会话无法正常工作

时间:2017-10-25 22:20:34

标签: php codeigniter session

问题在于,当我登录项目时,它会创建会话,但是当我尝试从其他控制器或甚至从同一个控制器访问会话时,会话数据不存在,我从autoload加载会话,我也尝试在构造函数中加载会话,但问题仍然存在。 原谅我的英语,这不是我的母语,我希望你能帮助我,谢谢

控制器登录功能:

public function do_login(){
        $user = $this->input->post('usuario');
        $passwd = $this->input->post('clave');
        $data = $this->login_model->do_login($user,$passwd);

        if($data){
            $this->session->set_userdata("login",(array)$data); 
            //print_r($this->session->userdata());
            echo json_encode(array('status' => 1,'message'=>'Bienvenido','idPerfil'=> $data->idPerfil));
        }else
            echo json_encode(array('status' => 0,'message'=>'Usuario o contraseña incorrecto'));
    }

constructor
public function __construct(){
        parent::__construct();

        $this->load->model('login_model');
        $this->load->library('Mobile_Detect');
        //$this->load->model('cat_usuarios_model');
    //  $this->load->model('cat_sucursales_model');
    $this->load->library("session");

    }  

这是autoload.php行

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

1 个答案:

答案 0 :(得分:0)

您的问题在于配置。

$config['sess_save_path'] = NULL

这导致失败。

如果$config['sess_driver'] = 'files';,则必须将$config['sess_save_path'] 设置为绝对路径到保存文件的文件夹。

您可以为文件创建一个文件夹。请参阅documentation for more information。或者,您可以使用以下内容。

$config['sess_save_path'] = sys_get_temp_dir();

创建保存会话文件的特定文件夹可能比使用sys_get_temp_dir()更好。这是一个小工作,因为如果你只是学习如何做这些事情,设置文件夹的权限和所有权可能会很棘手。