CI3 PHP7 session 不能读取的问题

bug场景:

linux, CI 3.0.5, php7.1.3, 验证码读取

session使用files, 调试代码发现能写入, 但其他地方不能读取, 试了其他database, redis都不行, 最后改回files

解决办法:

 

根本原因在这,libraries/Session/Session.php 中 128行

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']]);  
}  

/^[0-9a-f]{40}$/,要改成 /^[0-9a-z]{10,40}$/,session_id范围好像php7发生变化了,不像每次执行都会unset($_COOKIE[ci_session]);这个值, session永远取不到值。

posted on 2018-07-09 14:40  小乔流水人家  阅读(337)  评论(0编辑  收藏  举报

导航