【发布时间】:2017-11-19 23:35:57
【问题描述】:
尽管这里有无数类似的问题,但没有一个对我有用。所以,我决定在这里发布。
问题是页面刷新/重定向后会话被破坏。
我在 Windows 10 上使用 XAMPP 服务器(带有 PHP 7.x 的最新版本),我认为这是 codeigniter 设置的问题,但是我只是测试了传统的会话代码(没有 Codeigniter)并且工作正常。
传统 PHP 代码(工作正常)
session_start();
if(!isset($_SESSION['admin'])) {
$_SESSION['admin']='test';
die('session not set, set it now');
}
else {
echo $_SESSION['admin'];
}
Codeigniter 代码(这就是问题所在)
if($this->session->userdata('admin')) {
echo $this->session->userdata('admin');
}
else {
$this->session->set_userdata('admin', 'test');
echo 'session not set, set it now';
}
Codeigniter 会话配置
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'C:\\xampp\\htdocs\\application\\cache\\session\\';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
注意相同的 Codeigniter 代码在 WAMP 服务器 - Windows 10 上运行良好
【问题讨论】:
-
只是一个提示,而不是像
$config['sess_save_path'] = 'C:\\xampp\\htdocs\\application\\cache\\session\\';那样写APPPATH像$config['sess_save_path'] = APPPATH . 'cache/session/';一样使用$config['sess_save_path'] = APPPATH . 'cache/session/'; -
我尊重你的建议,虽然,我已经手动检查了目录 `C:\\xampp\\htdocs\\application\\cache\\session\\` 并在那里找到了会话文件,这意味着,它工作正常。
-
那么
print_r($this->session->userdata);你什么时候得到什么? -
仅限
Array ( [__ci_last_regenerate] => 1497678913 ) -
$_SESSION这也返回相同?
标签: php codeigniter session xampp