Codeigniter会话在重定向后无法保存

时间:2017-03-21 03:13:57

标签: php codeigniter session

我有一个项目,我使用XAMPP在Windows的localhost上使用CodeIgniter开发。这个项目差不多完成了,并且在我的第一台笔记本电脑(我在第一台笔记本电脑上开发)的服务器和本地主机上运行良好。但是,当我试图在我的第二台笔记本电脑上运行这个项目时,这个项目在页面加载/重定向时会丢失/删除会话。而在页面刷新/重定向之前已经收到并生成了会话数据。< / p>

注意:我在第一台和第二台笔记本电脑上使用相同的源代码

我不知道为什么。我已经尝试过stackoverflow朋友的问题解决方案,但没有得到工作解决方案。

我的自动加载

$autoload['libraries'] = array('database','session','pagination','bcrypt','form_validation');
默认情况下

我的配置会话和Cookie

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

$config['cookie_prefix']    = '';
$config['cookie_domain']    = '';
$config['cookie_path']      = '/';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;

我的控制器

public function auth()
{
    $username=$this->input->post('username');
    $password=$this->input->post('password');

    $this->login_m->set_username($username);
    $query = $this->login_m->login();
    if ($query->num_rows()==1)
    {
        $row = $query->row();
        if ($password == $this->bcrypt->check_password($password,$row->password)) {    
            $data_login= array(
            'username'=>$row->username,
            'id_user'=>$row->id_user,
            'nama'=>$row->nama,
            'akses'=>$row->akses
            );
            $this->session->set_userdata($data_login);
            $akses = $this->session->userdata('akses');
            if ($akses=='super admin' or $akses=='admin') {
                redirect('dashboard');
            }elseif ($akses=='user') {
                    redirect('home');
            }       
        }
        else {
            echo "<script>alert('Gagal login: Cek nip, password!');history.go(-1);</script>";
        }
    }
    else {
        echo "<script>alert('Gagal login: Cek nip, password!');history.go(-1);</script>";
    }
}

我的模特

public function login()
    {
        $query = "SELECT * from por_user where username = ?";
        return $this->db->query($query,array($this->get_username()));
    }

注意:我在第一台和第二台笔记本电脑上使用相同的源代码

当我在重定向后打印会话时,结果为 null

任何人都可以帮助我吗? 原谅我的英语:D谢谢你

1 个答案:

答案 0 :(得分:0)

您需要设置类似

的保存路径

应用/高速缓存/会话/

$config['sess_save_path'] = APPPATH . 'cache/session/';

许可0700