Codeigniter的本地会话类的问题

时间:2011-01-06 14:54:45

标签: php internet-explorer session codeigniter

所以我将我的应用程序切换到Native Session Class是codeigniter,因为IE和会话有些问题。但是现在,这个会话类似乎很快就会将人们记录下来。我已经查看了所有代码,似乎无法找到问题。这是本机会话类:http://ellislab.com/codeigniter/wiki/Native_session/

此外,我的所有配置变量都是默认设置。我想知道这是Native Session的错还是我自己的错。我在另一个用于确定用户是否已登录的脚本中使用bool var。只是想我会把它扔出去。

BTW,Codeigniter 1.7.3,PHP 5

3 个答案:

答案 0 :(得分:0)

CodeIgniters会话与PHP的会话无关。他们刷新每个(我认为)5分钟而不会失去与用户的关联。这是一种防止会话窃取的安全功能。要使会话更长,您需要在配置中自定义超时。

$config['sess_expiration']        = 7200;
$config['sess_time_to_update']    = $config['sess_expiration'];

现在CI更新它的会话之前的时间与常规会话到期时间相同。

答案 1 :(得分:0)

正如Colossos博士所说,可以重写

$config['sess_expiration'] = 7200;

但'更新时间'应该保持较低的值。此参数设置会话ID重新生成的频率,用于避免会话窃取,这意味着会话到期。

我记得关于IE和CI会话的唯一问题是CI使用非核心会话来表示coockie会话的名称,这是不喜欢IE的东西,所以如果你更改会话配置文件中的名称,问题消失。

答案 2 :(得分:0)

所以答案是“只使用数据库”。我最终只使用CI将数据库用于会话数据的能力。 http://ellislab.com/codeigniter/user_guide/libraries/sessions.html请参阅标题为“将会话数据保存到数据库”的部分