Sur*_*shi 5 php session codeigniter
在登录后的codeigniter中,我将所有数据存储到会话中并重定向到论坛控制器.但我失去了论坛控制器中的所有价值观.
当我尝试从会话中减少一些值后,它完美地工作.
现在我的问题是 - 为什么会这样?在codeIgniter中是否存在会话中存储的值的上限?
即使我尝试搜索我发现像
redirect('forum', 'refresh');
Run Code Online (Sandbox Code Playgroud)
但它没有用.我的项目已经开发了一半,所以我不能使用codeignter的"PHP Native Session class".
默认情况下,CodeIgniter将会话数据存储在cookie中,其大小上限为4KB.如果您尝试在会话中存储超过4KB的数据,您将开始遇到问题.
最简单的解决方案可能是将会话详细信息存储在数据库中.该CodeIgniter的会议文件详细介绍了过程存储在数据库会话-这是建立一个表,并改变几个配置参数的问题.
说明:默认情况下,CodeIgniter 将会话数据存储在 cookie 中,根据浏览器,cookie 的大小上限为 2KB-4KB。如果您尝试在会话中存储超过 4KB 的数据,您将开始遇到问题。
解决方案:最简单的解决方案是将会话详细信息存储在数据库中。CodeIgniter会话文档详细介绍了在数据库中存储会话的过程。只需设置一个表并更改几个配置参数即可。以下是您需要做的更改 -
更新配置文件(application/config/config.php)中的以下变量:
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
Run Code Online (Sandbox Code Playgroud)
创建了用于存储会话的新表-
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:http://goo.gl/YPllj0
| 归档时间: |
|
| 查看次数: |
6679 次 |
| 最近记录: |