1

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

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

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

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

4

4 回答 4

5

设置会话后:

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

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

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

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

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

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

应用程序/配置/autoload.php

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

在控制器中设置会话是最佳实践。

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

于 2012-05-04T02:19:48.483 回答
2

也许您必须在application/config/config.phpFile中设置一些配置变量

$config['cookie_domain']并且$config['cookie_path']似乎导致了这个问题。如果是这样,那么只需将它们的值设置为“”并尝试一下。

于 2012-05-04T04:22:50.010 回答
1

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

于 2013-06-19T16:11:59.180 回答
0

对于任何在使用 codeigniter 会话时遇到问题的人,请不要打扰。它们是通过 cookie 完成的,如果您的网站上有很多 ajax,它们就会有很多错误。切换到本机会话。

于 2012-11-13T17:57:56.077 回答