我应该将哪个会话库与 CodeIgniter 一起使用?

2024-03-09

我最近开始使用 CI 及其 CI 会话,但我注意到,使用 CI 会话比使用基本 PHP 会话特别耗时得多:Arrays.

我有一组数据,无论登录/注销如何,它都会持续存在,称为$_SESSION['stats'],然后我以以下形式将数据存储在该数组中:

$_SESSION['stats']['last_page'] = $_SERVER['REQUEST_URI'];.

当用户注销时,它将统计数组保存在变量中,清除会话,然后将其加载回新会话中。

问题是,为了编辑 last_page 键,而不是上面的一行,我必须使用以下代码:

$stats = $this->CI->session->userdata('stats');
$stats['last_page'] = $_SERVER["REQUEST_URI"];
$this->CI->session->set_userdata('stats', $stats);

这是我在 CI 会话中发现的众多烦恼之一,这让我作为我的会话处理程序对它感到不满意。所以我的问题是:我应该将哪个会话系统与 CodeIgniter 一起使用?...使用 CI 会话有什么原因吗?您有推荐的 CI 库吗?为什么不直接使用 PHP 会话呢?

Thanks,

Lemiant


CI 会话提供了一些额外的功能;例如每隔给定时间自动重新生成会话 ID(出于安全考虑)、IP 地址跟踪,以及闪存数据(读取一次后清除的会话数据)。

CI的会话机制将所有数据存储在cookie中。 PHP 的本机会话机制存储在服务器端。每种都有其优点/缺点。 Cookie 只能保存 4KB 的数据,因此如果您在会话中存储大量数据,PHP 本机会话可能会更好。

如果您决定使用本机 PHP 会话,请使用: 会话混合 http://codeigniter.com/wiki/Session_Hybrid/(CI 1.7.2)

Session Hybrid 使用原生 PHP 会话,可以将会话数据存储在默认的 CI 数据库中,是 CI 会话类的直接替代品,并且只需要重写一个文件。

[* 如果使用 CI 版本before1.7.0试试PHP 会话 http://codeigniter.com/wiki/PHPSession/ and 本地会话 http://codeigniter.com/wiki/Native_session/]

旁注:如果您选择继续参加 CI 课程,为了提高安全性,您可以将会话存储在数据库中并加密 cookie(请参阅会话首选项 http://codeigniter.com/user_guide/libraries/sessions.html).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该将哪个会话库与 CodeIgniter 一起使用? 的相关文章