php – 会话ID在CodeIgniter中发生变化

我正在使用CodeIgniter的会话功能,我正在运行此代码
$session_id = $this->session->userdata('session_id');
echo "My Session ID is $session_id";

每次加载页面时它都会不断变化.这是否意味着会话未正确保存?有没有办法调试这个并找出原因?或者我没有正确使用这个库?

启用错误报告时,我没有收到任何错误,并且我正在使用CI的自动加载功能来加载会话库:

$autoload['libraries'] = array('session');

任何建议都会有所帮助!

以上代码输出示例:

我的会话ID是7c92bac53d2654df6e87eb4e4cb25467

..重装..

我的会话ID是c6dd14aed2499760f788a1364dcab030

更新:我在config.PHP中的会话配置如下所示:

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

所以我发现了

session_start();
$_SESSION['myvar']='var';

也没有存储任何东西,我的linux服务器上的会话存储似乎有问题.

我的会话保存路径有apache:apache 775权限.也许这应该转移到serverfault?

根据CI的Session.PHP,每次更新时ID都会更改,但它们会保留对旧ID的引用,以便他们可以在右侧更新它.

此外,根据文档:“session_id”每五分钟重新生成(认情况下)“.

您有什么理由需要访问“session_id”吗?如果您需要某种固定ID,您应该创建自己的“my_session_id”,这样它就不会在请求之间发生变化.

$uniqueId = uniqid($this->CI->input->ip_address(),TRUE);
$this->session->set_userdata("my_session_id",md5($uniqueId));

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...