回答
它什么都没有做与笨会话,4KB的数据是cookie可以容纳的最大尺寸。
持有更多的数据使用数据库(见http://codeigniter.com/user_guide/libraries/sessions.html“保存会话数据到数据库”)。
“将会话数据保存到数据库”一章只解释了如何使用CI_Session存储验证数据。您的“真实”数据始终存储在cookie中,因此会话大小相同:4kb 请参阅http://codeigniter.com/wiki/DB_Session/或http://codeigniter.com/wiki/OB_Session/以供存储在数据库 – 2011-05-25 08:26:42
不是好的做法数据DB再次与再次命中了通用数据 – 2012-09-22 05:23:23
不要存放大量的会话数据;它会在每个请求中加载到脚本的内存中。
改为使用文件或数据库,使用会话ID将数据连接到会话。
是的,您将需要使用数据库。是的,4kb限制是浏览器对cookie大小的限制,正如Netscape十年前所选择的。无论如何,保持cookie小是一个很好的做法,因为每个服务器上的对象(对于同一个域)的请求头都会发送这个cookie。
此外,CodeIgniter关于数据库会话表的一个好建议是将类型设置为MEMORY,以便会话存储在RAM而不是磁盘中,这会使您的站点更快(访问站点时磁盘读取更少)。当服务器重新启动时,会丢失会话数据,但在重新启动之前,该类信息通常不会太有用。
SQL创建的CodeIgniter MySQL表:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id)
);
CodeIgniter的PHP选项(在应用程序/配置/ config.php文件):
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
@all它甚至不是一个很好的做法,尽管Session可以为此服务,但是再次针对常见数据再次敲入db &。我建议使用PHP本地会话为此,在这里看到了如何使用PHP原始会议在CI Replacing CI session with PHP Native Session
当我尝试这样做,我得到这个错误:出错遇到 不存在的类:会议 – dapidmini 2016-10-11 05:17:36
- 1. PHP中的会话变量大小增加Mysql Codeigniter应用
- 2. Codeigniter中的会话
- 3. 会话:会话大小限制
- 4. CodeIgniter会话vs PHP会话
- 5. codeigniter中的会话值
- 6. CodeIgniter中的会话处理
- 7. CodeIgniter中的会话过期
- 8. codeigniter中的会话更新
- 9. 会话中的错误codeigniter
- 10. 会话中的Codeigniter对象?
- 11. PHP会话的最大大小
- 12. 会话(CodeIgniter)
- 13. CodeIgniter会话encryption_key
- 14. ASP.NET会话大小限制
- 15. 会话在CodeIgniter中死亡
- 16. 在codeigniter中销毁会话
- 17. 在codeigniter中登录会话
- 18. Codeigniter会话问题
- 19. CodeIgniter 3和会话
- 20. CodeIgniter会话错误
- 21. Codeigniter会话问题
- 22. Codeigniter会话问题
- 23. CodeIgniter 3 + Docker - 会话
- 24. Codeigniter会话问题
- 25. Codeigniter本地会话或ci会话库
- 26. 的Java EE - 找到会话大小
- 27. 状态会话bean池的大小
- 28. codeigniter中的会话未定义的属性:CI :: $会话
- 29. 不同浏览器中会话数据的最大大小
- 30. IE9中的Codeigniter会话问题
CodeIgniter使用Cookie存储会话信息。如果您要存储如此大量的数据,您应该考虑使用数据库来存储信息。 – Malachi 2010-12-13 16:56:27
谢谢, 我改变了我的程序,不保存会话中的一些数据 – Pedro 2010-12-14 13:46:53