gpt4 book ai didi

php - CodeIgniter 3 在每个请求上生成一个 session 文件,为什么?

转载 作者:行者123 更新时间:2023-12-03 16:58:44 25 4
gpt4 key购买 nike

我将 CodeIgniter (v3.1.11) 用于我的 webapp,并将文件用作 session_driver。
session 库是这样自动加载和配置的

$config['sess_driver']                  = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 21600;
$config['sess_use_database'] = false;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = false;
$config['sess_time_to_update'] = 300;
$config['sess_save_path'] = APPPATH . "cache/sessions/";
当我登录时,我使用 $this->session->set_userdata($myData) 在 session 对象中设置我的用户信息
并创建相应的 session 文件,其中包含我需要的信息
user@:~/path/to/application/cache/sessions$ sudo cat ci_sessionb69ca97bce23674e94809941346fae7300c4afaa
username|s:9:"user";id|i:2;logged_in|b:1;language|s:2:"EN";
但是当我的前端请求 CodeIgniter Controller 时,会为每个带有空数据的请求创建一个新的 session 文件,并且我最终无法检索存储在初始 session 文件中的数据。
user@:~/path/to/application/cache/sessions$ sudo cat ci_sessiondcdd28185aa2f7c9a4f83841193e8c826399abc5
__ci_last_regenerate|i:1603286120;
什么可能导致这种情况发生?

最佳答案

因为 http 是无状态协议(protocol),用户跟踪将使用以下方法完成:
服务器 发送 token 客户 客户 在下一次请求时返回该 token 。
这种方法可以使用多种方法实现:

  • 使用 以 html 形式发送隐藏的输入 token 值(value)。
  • 使用 设置 cookie token 值(value)

  • session * 使用cookie方法的机制。

    initially server sets a session_id in httpResponse's cookie. andclient return the session_id with each httpRequest.


    所以 你的正面需要在其请求上设置cookie(session_id),并在每个请求中将其发送到服务器。
    防止服务器初始化新的 session_id session 文件 对于每个 http 请求。

    关于php - CodeIgniter 3 在每个请求上生成一个 session 文件,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64464427/

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