php7怎么使用session失效,php7.3升级后CI框架session失效,session id 每次重新生成_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > php7怎么使用session失效,php7.3升级后CI框架session失效,session id 每次重新生成

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

 2022/9/15 15:27:02  hdxiong  程序员俱乐部  我要评论(0)
  • 摘要:php7.3升级后CI框架session失效session不能读取的问题框架ci3.0.2,php服务器从5升级到7.x后发现session失效了ci无法设置session的问题根本原因在,libraries/Session/Session.php中133行://Sanitizethecookie,becauseapparentlyPHPdoesn'tdothatforuserspacehandlersif(isset($_COOKIE[$this->
  • 标签:PHP CI框架 使用
php7.3升级后CI框架session失效session不能读取的问题

框架ci3.0.2,php服务器从5升级到7.x后发现session失效了

ci无法设置session的问题

根本原因在,libraries/Session/Session.php 中 133行:
class="PHP">

// 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'

发表评论
用户名: 匿名