`
hdxiong
  • 浏览: 376416 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php7怎么使用session失效,php7.3升级后CI框架session失效,session id 每次重新生成

    博客分类:
  • PHP
阅读更多
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)
session.sid_length = 26


解决办法:

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

php7.0升级到php7.1


PHP7 ci框架session存文件,登录的时候session不能读取

config.php配置
$config['sess_driver'] = 'files';//以文件存储session 
$config['sess_cookie_name'] = 'ci_sessi'

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics