【发布时间】:2011-04-09 11:31:21
【问题描述】:
我最近开始使用 CI 和 CI 会话,但我注意到使用 CI 会话比使用基本 PHP 会话更耗时:数组。
我有一个名为$_SESSION['stats'] 的数据数组,无论登录/注销如何都会持续存在,然后我将数据以以下形式存储在该数组中:
$_SESSION['stats']['last_page'] = $_SERVER['REQUEST_URI'];。
当用户注销时,它会将 stats 数组保存在一个变量中,清除会话,然后将其加载回新会话中。
问题是为了编辑 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 会话?
谢谢,
勒芒
【问题讨论】:
-
我对 CI 一无所知,但看起来你可以通过创建一个 Stats 类并存储它的实例来解决这个问题。然后你可以直接使用
$this->CI->session->userdata('stats')->setLastPage($_SERVER['REQUEST_URI']);我知道这不是你问的那样,但这也有其他好处(比如摆脱一些魔术字符串和帮助文档)。
标签: php arrays session codeigniter