繁体   English   中英

本机PHP会话值在Codeigniter中丢失

[英]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会话管理

在了解了会话库如何在codeigniter中工作之后,找出了问题的根本原因。

根据文档,

加载页面后,会话类将检查用户的浏览器是否发送了有效的会话cookie。如果会话cookie不存在(或者与服务器上存储的cookie不匹配或已过期),则将创建并保存新的会话。

就我而言,当我使用PHP本机会话时,它不会为CI创建有效的cookie,并且按照上述声明, CI将创建新会话,因此旧会话将被破坏。

有两种方法可以解决此问题

  1. 通过使用@$this->load->library('session')禁止CI会话库生成的警告和通知
  2. 根本不要加载CI会话库 ,而继续使用本机PHP会话。

希望有人遇到同样的问题会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM