我正在使用codeigniter 2.1.0.
我正在尝试使用codeigniter中的会话库来执行注册/登录功能.
使用会话库的注册/登录对localhost工作正常,但是当我把它放到现场并尝试它时,会话不起作用.
我的控制器登录就是这样的.我检查凭据,一旦确定我设置了会话数据并重定向到另一个页面.
$user_data = array(
'username' => $result->user_name,
'email' => $result->user_email,
'userid' => $result->user_id,
'role' => $result->user_role,
'login_state' => TRUE,
'lastlogin' => time(),
);
$this->session->set_userdata($user_data);
print_r( $this->session->all_userdata());
redirect(base_url('dashboard'));
Run Code Online (Sandbox Code Playgroud)
此时,当我打印所有会话数据时,它们会打印出来.但是在仪表板控制器端,当我尝试打印会话数据时,他们不再存在了.
知道为什么吗?在此先感谢您的帮助.
我在一个小网站上使用了pyrocms / codeigniter 组合。添加一些内容后,我检查了数据库并看到:

这是正常行为吗?一个用户有多个session_ids 具有相同的ip?我无法想象这是正确的。
我的会话配置如下所示:
$config['sess_cookie_name'] = 'pyrocms' . (ENVIRONMENT !== 'production' ? '_' .
ENVIRONMENT : '');
$config['sess_expiration'] = 14400;
$config['sess_expire_on_close'] = true;
$config['sess_encrypt_cookie'] = true;
$config['sess_use_database'] = true;
// don't change anything but the 'ci_sessions' part of this. The MSM depends on the 'default_' prefix
$config['sess_table_name'] = 'default_ci_sessions';
$config['sess_match_ip'] = true;
$config['sess_match_useragent'] = true;
$config['sess_time_to_update'] = 300;
Run Code Online (Sandbox Code Playgroud)
我没有更改影响会话类或类似内容的代码行。
红帽行属于 15 分钟的 cron 作业。我认为这很好。
每次刷新页面时都会添加两到三个新的 session_entries...