允许在所有控制器上使用会话的最佳方法是什么? 我认为有几种方法可以做到这一点:
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,这些错误会有很多错误。切换到本机会话。