lem*_*ant 5 php arrays session codeigniter
我最近开始使用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);
Run Code Online (Sandbox Code Playgroud)
这是我在CI会话中发现的一些烦恼之一,这使我对它作为我的会话处理程序感到不满.所以我的问题是:我应该在CodeIgniter中使用哪个会话系统?...是否有使用CI会话的原因?您建议使用CI库吗?为什么不使用PHP会话?
谢谢,
Lemiant
CI会话提供了一些额外的功能; 例如,每隔给定的时间(安全性),IP地址跟踪和flashdata(在读取一次后清除的会话数据)自动重新生成会话ID .
CI的会话机制将所有数据存储在cookie中.PHP的本机会话机制存储在服务器端.每个都有它的优点/缺点.Cookie只能容纳4KB的数据,因此如果您在会话中存储大量数据,PHP本机会话可能会更好.
如果您决定要使用本机PHP会话,请使用: Session Hybrid(CI 1.7.2)
会话混合使用本机PHP会话,可以将会话数据存储在默认CI数据库中,是CI会话类的直接替代,只需要重写一个文件.
[*如果在 1.7.0 之前使用CI版本,请尝试PHPSession和Native Session ]
附注:如果您选择继续使用CI的会话,为了提高安全性,您可以将会话存储在数据库中并加密cookie(请参阅会话首选项).
| 归档时间: |
|
| 查看次数: |
3760 次 |
| 最近记录: |