代码点火器会话 在所有控制器上不起作用


Codeigniter session Not Working across all controllers

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

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

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

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

设置会话后:

$this->session->set_userdata('name', 'value');

您可以在任何地方调用它:

$this->session->userdata('name');

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

$this->load->library('session');

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

应用程序/配置/自动加载.php

$autoload['libraries'] = array('session');

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

我在这里看不到任何并发症。

也许你必须在application/config/config.php文件中设置一些配置变量

$config['cookie_domain']$config['cookie_path']似乎导致了这个问题。如果是这样,那么只需将其值取消设置为 " 并尝试一下。

尝试在开发模式下将$config['cookie_secure']设置为FALSE

对于任何在代码点火器会话中遇到问题的人,请不要打扰。它们是通过cookie完成的,如果你的网站上有很多ajax,这些错误会有很多错误。切换到本机会话。