php - ci无法设置session的问题

查看:119
本文介绍了php - ci无法设置session的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

用ci写了个登录页,代码如下:

print_r($this->session->userdata());
$this->session->set_userdata('test',rand(564,489426354465));
echo '<br>';
print_r($this->session->userdata());

输出:


Array ( [__ci_last_regenerate] => 1497598658 ) 
Array ( [__ci_last_regenerate] => 1497598658 [test] => 115826667932 )

无论刷新多少次页面,session里都不存在test的值,只是__ci_last_regenerate的时间戳增加了,请问这是为什么?有人遇到过这情况吗?

检查1,不是php配置问题,我在根目录建了个php文件,代码如下,每次输出都能输出正确的session

session_start();
ob_start();

print_r($_SESSION);
$_SESSION['test'] = rand(456,4984945569);
print_r($_SESSION);

解决方案

原来的ci版本是 3.1.0 (/system/core/CodeIgniter.php中定义的一个常量),后来用 3.1.3 的 system中所有文件覆盖了它,问题就解决了,这算是 3.1.0 的bug?

之前是用 php5.5的,前几天改成了 php7.1.4,不知道是不是这个原因导致的


2017年06月29日15:57:00
根据楼下几位的回答,可以确定是因为 CI 旧版本在 php7 环境下session出问题导致的

这篇关于php - ci无法设置session的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆