本地xampp服务器上的空会话

时间:2017-07-20 20:22:24

标签: php codeigniter session xampp localhost

我在PHP站点上的会话有问题我在xampp本地运行。我有一个登录页面,可以创建会话并重定向到登录区域。在登录区域,有检查是否1)会话变量为空,2)信息与数据库匹配。

当我登录时,第一步失败,因此会话变量为空。支票的确切代码如下:

if(!empty($this->session->userdata['auth'])){
    return true;
}else{
    return false;
}

我从登录页面发送到登录区域,所以我认为它至少尝试在重定向我之前创建会话,但我不确定如何检查以确定。

我最近在我的计算机上重新安装了操作系统和所有程序,包括xampp,所以我假设存在问题。这个确切的代码在远程服务器上正常运行,并且在xampp中的旧本地系统上正常运行。

代码用CodeIgniter编写,会话库已加载。

  • PHP版本:7.1.4
  • CodeIgniter版本:3.1.0
  • Xampp版本:3.2.2

config.php中的会话变量:

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

来自config.php的Cookie变量:

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

编辑:

这是会话的设置方式:

$sessionArr = array(
    'userId'=> $userDetails->userId,
    'username'=> $userDetails->username,
    'email'=> $userDetails->email,
    'userType'=> $userDetails->userType
    );
$this->session->set_userdata('auth',$sessionArr);

3 个答案:

答案 0 :(得分:1)

在您的项目中存储会话。

使用APPPATH或FCPATH我将min存储在缓存文件夹中。

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

OR

$config['sess_save_path'] = FCPATH . '/application/cache/sessions/';

确保文件夹权限0700

使用()而不是[]

if(!$this->session->userdata('userID')) {
    redirect('somecontroller')
}

我不知道你如何设置会话虽然设置会话类似

$sessionArr = array(
    'userId'=> $userDetails->userId,
    'username'=> $userDetails->username,
    'email'=> $userDetails->email,
    'userType'=> $userDetails->userType
    );
$this->session->set_userdata($sessionArr);

答案 1 :(得分:1)

Codeigniter 3的某些早期版本存在问题,这是他们网站上已经报告的bug。基础会话错误已修复:

  • 3.1.2
  • 3.1.3
  • 3.1.4

因此,在最新版本的Codeigniter 3中,这个问题并没有发生。

解决方案:

如果您已经处于错误版本的codeigniter,请考虑使用最新版本替换系统文件夹。在撰写本文时,版本3.1.7。

答案 2 :(得分:0)

最终对我有用的是卸载xampp并安装以前的版本。我之前尝试重新安装相同版本但没有成功。