php7.3升级后CI框架session失效session不能读取的问题

php7.3升级后CI框架session失效session不能读取的问题

框架ci3.0.2,php服务器从5升级到7.x后发现session失效了
ci无法设置session的问题
根本原因在,libraries/Session/Session.php 中 133行:

复制代码
// Sanitize the cookie, because apparently PHP doesn't do that for userspace handlers
        if (isset($_COOKIE[$this->_config['cookie_name']])
            && (
                ! is_string($_COOKIE[$this->_config['cookie_name']])
                OR ! preg_match('/^[0-9a-z]{10,40}$/', $_COOKIE[$this->_config['cookie_name']])
            )
        )
        {
            unset($_COOKIE[$this->_config['cookie_name']]);
        }

        session_start();
复制代码

 


如果sessionid的长度不是40的话,每次执行都会 unset($_COOKIE[ci_session])。而session_id取值范围和长度在php7中变了(默认是26)

解决办法:
将上面的/^[0-9a-f]{40}$/, 改成 /^[0-9a-z]{10,40}$/

posted @   大自然的流风  阅读(2209)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2017-06-06 微信公众号注销需要多长时间 微信公众号注销成功多久释放资源
2017-06-06 被放弃的概率权,机器下围棋不理会沉没成本
2017-06-06 百位性感女明星三围大曝光,体型测试设计
2017-06-06 斯坦福大学机器学习,EM算法求解高斯混合模型
2017-06-06 Javascript图片预加载详解
2017-06-06 使用马尔可夫模型自动生成文章
2016-06-06 网站app被劫持怎么办?HTTPDNS阿里云域名防劫持, DNSPod 移动解析服务 D+
点击右上角即可分享
微信分享提示