php – 会话ID在CodeIgniter中发生变化
发布时间:2020-12-13 18:27:21 所属栏目:PHP教程 来源:网络整理
导读:我正在使用CodeIgniter的会话功能,我正在运行此代码: $session_id = $this-session-userdata('session_id');echo "My Session ID is $session_id"; 每次加载页面时它都会不断变化.这是否意味着会话未正确保存?有没有办法调试这个并找出原因?或者我没有正
我正在使用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)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |