[英]Native PHP Session values are lost in Codeigniter
我正在使用本地PHP sessions
的项目中sessions
。 我将用户重定向到Codeigniter页面,所有会话值都丢失了。 我尝试使用Nativesession库,它可以帮助我保留所有本机php会话数据,如果我在Codeigniter的index.php
中使用session_start()
,也是如此,但是我收到通知消息,说“ 会话处于活动状态,您无法更改会话模块的此时的ini设置 ”和“ 会话已经开始-忽略 session_start()
”
您必须像这样开始会议
将此添加到您的控制器构造函数
$this->load->library('session')
您可以像这样使用会话
$this->session
添加数据
$this->session->set_userdata('some_key', 'some_value');
获取数据
$some_value = $this->session->userdata('some_key');
阅读文档
在了解了会话库如何在codeigniter中工作之后,找出了问题的根本原因。
根据文档,
“ 加载页面后,会话类将检查用户的浏览器是否发送了有效的会话cookie。如果会话cookie不存在(或者与服务器上存储的cookie不匹配或已过期),则将创建并保存新的会话。 ”
就我而言,当我使用PHP本机会话时,它不会为CI创建有效的cookie,并且按照上述声明, CI将创建新会话,因此旧会话将被破坏。
有两种方法可以解决此问题
@$this->load->library('session')
禁止CI会话库生成的警告和通知 希望有人遇到同样的问题会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.