gpt4 book ai didi

php - session ID 刷新后 Codeigniter 用户数据丢失 [CodeIgniter 3.0]

转载 作者:行者123 更新时间:2023-11-30 22:49:21 24 4
gpt4 key购买 nike

我在连接到 MySQL 数据库的网站上使用 Codeigniter 的 session 库。我有自己的库,可与为处理登录检查而创建的 session 一起使用。

基本上,当我登录时,我会在 session cookie 的用户数据中存储我已登录的信息。 (然后还有其他检查具有某种安全性)

$this->session->set_userdata('logged_in','1');

现在,一旦 session ID 刷新(标准 300 秒),我所有的用户数据都消失了。我检查了数据库, session ID 没有得到更新,它只是创建了一个新的。

我正在使用 Codeigniter 3.0,我不确定它是否应该像那样工作。

编辑:

我的 config.php( session 内容)

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

cookies 的东西

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

基本上会发生以下事情:

我得到 ID 为 123 的 session 。我将用户数据 logged_in = 1 分配给 session 。全部保存在数据库中。5分钟后。 (或者配置文件中定义的时间)

$config['sess_time_to_update'] = 300;

我在我的浏览器中获得了一个没有用户数据的 ID 为 137 的新 session 。用户数据 logged_ind = 1 的 session 123 与新创建的 session 137 一起仍在数据库中。

因此,与其更新“sess_time_to_update”,不如创建一个新 session 。

最佳答案

您的 session 不断过期,更改这些设置:

来自:

$config['sess_expiration'] = 0;

收件人:

$config['sess_expiration'] = 7200; // expires in 2 hours

关于php - session ID 刷新后 Codeigniter 用户数据丢失 [CodeIgniter 3.0],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28594258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com