尽管这里有无数类似的问题,但在我的案例中并没有这些问题。所以,我决定在这里发布。
问题是页面刷新/重定向后会话正在被破坏。
我在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
答案 0 :(得分:0)
您的代码看起来是正确的。我认为您可以查看Native-session。这可以解决您的问题。
并同时检查config.php
cookie_domain
。这不应为空。
答案 1 :(得分:0)
会话设置似乎正确,我建议你,请检查Application / Config / autoload.php中的会话库
$autoload['libraries'] = array('session');
希望这样能帮到你