跨所有控制器的codeigniter会话

Sem*_*iev 1 php session controller global codeigniter

什么是允许在我的所有控制器中使用会话的最佳方法?我认为有几种方法可以做到:

1)将()会话定义为全局变量.我听说这不是最好的方法
2)设置一个通用的MY_controller并将每个其他控制器扩展到它.在那里设置会话,这将使它们在所有类中可用
3)与将get_instance()添加到位于每个控制器顶部的__contructor()函数有关的
东西是什么是在所有控制器中设置会话的最佳方式控制器?

我无法使用任何这些方法.任何想法都会有所帮助.谢谢

顺便说一句,问题是codeigniter不喜欢同时的ajax请求.它们互相干扰,会话数据被删除.

dee*_*eex 5

设置会话后:

$this->session->set_userdata('name', 'value');
Run Code Online (Sandbox Code Playgroud)

你可以在任何地方打电话:

$this->session->userdata('name');
Run Code Online (Sandbox Code Playgroud)

但是,要使会话正常工作,您需要首先手动初始化Session类!这可以通过调用此函数来完成:

$this->load->library('session');
Run Code Online (Sandbox Code Playgroud)

或者您可以让CodeIgniter 自动加载它:

应用/配置/ autoload.php

$autoload['libraries'] = array('session');
Run Code Online (Sandbox Code Playgroud)

在控制器中设置会话是最佳做法.

我在这里看不到任何复杂情况.