Maven、
我的会话有一点问题。我想将登录数据保存到会话中,如下所示:
检查登录控制器
$user = $this->user_model->user($email, $password);
$user["logged_in"] = TRUE;
var_dump($this->session->set_userdata($user)); // return NULL? is this correct?
var_dump($this->session->all_userdata()); //return the correct data
现在会话已保存到重定向。
其他控制器
var_dump($this->session->all_userdata()); // return session_id,… and a empty user_data array
我想我有同样的问题与购物车类。
有人能帮忙吗?
6条答案
按热度按时间w6lpcovy1#
我不知道为什么,但我想我的故事会帮助那些面临同样问题的人。我的问题只是因为我忘记了降级我的Wamp PHP版本,它的php 7.1。看起来我的CI不支持php 7.1或更高。所以只要点击几下降级我的php,我的问题解决了。
shyt4zoc2#
我在主index.php文件中添加了session_start(),之后就非常好用了。
vof42yt13#
试试这个..
要获取会话值,您可以执行以下操作..
read more关于配置项中的会话
rjzwgtxy4#
set_userdata()
函数没有返回值,因此在var_dump()
上显示null
是正确的。为了将自定义数据保存到用户会话,您应该检查手册here
它接受的参数必须是数组。
gcxthw6b5#
hmm尝试添加到
ci->session
,然后获取数据//将CodeIgniter对象指派给变数
//添加数据到ci会话
在另一个控制器中,将
CodeIgniter
对象分配给变量并获取ci用户数据
9rygscc16#
当我想在运行PHP 7.3的服务器上重新运行以前使用CI 3.0.6构建的旧网站时,遇到了类似的问题。
我在一个控制器中设置了会话。
然后,当在数据库的会话表中存储新记录时,在此之后访问的其它控制器不能检索该信息。
对我有效的解决方案如下。
1.为配置项会话表中的
id
列设置更大的大小。例如,我们的会话表名称为ci_sessions
。1.将当前CI
system
目录替换为较新的版本。在我的示例中,它可以与CI 3.1.10中的system
目录一起使用。总之,需要更新的CI版本才能与更新的PHP(7.1+)很好地交互。对于存储的会话记录,它有一个更长的
id
值。与其降级您的PHP版本,不如升级CI版本。