当存储在数据库中的会话限制为USER_DATA场是文本的大小数据的大小...?不像4KB一般的cookie。笨会话大小限制
笨会话大小限制
回答
为了进一步阐明我上面的评论,当您选择将会话数据保存到数据库中时,CodeIgniter不会设置cookie(当然除了会话ID之外),但会保存它将设置的所有信息在你的数据库的cookie中。
如果你看一下在位于./system/libraries/
的Session
类sess_write
,如果你启用了使用一个数据库,你会看到,它采用序列化的serialize
数据,并直接将其保存到数据库中。 保存到数据库时CodeIgniter施加的长度没有限制。
为了您的方便,这里有一个链接至源代码:https://bitbucket.org/ellislab/codeigniter/src/fe2247a927ab/system/libraries/Session.php#cl-252。
唯一的限制是您选择用来将数据保存到数据库中的字段。有关MySQL数据类型存储要求的更多信息,请阅读this。
那么50kb左右的会话不会导致CI有问题?我一直有问题,我的会话数据在探查器中输出,但在控制器中不可用。我切换到这个会话库http://codeigniter.com/wiki/Session_Hybrid/,问题得到解决。 – ringerce
@ringerce - 这不应该是一个问题。会话本身本质上是另一个数组,在读取或保存时被序列化和非序列化(除非使用cookie)。我在会话中存储[Doctrine](http://www.doctrine-project.org/)对象,这些对象通常很大而没有任何问题。 –
我想这回答你的问题。从班级代码:
// Are we saving custom data to the DB? If not, all we do is update the cookie
if ($this->sess_use_database === FALSE)
{
$this->_set_cookie();
return;
}
即使评论是从类本身。所以它更新cookie IF不使用数据库。
我发现了同样的“大小限”问题,连我都ci_session
表用于存储
我只是在user_data = longtext
和我的问题的数据类型更改解决
虽然会话大小限制为LONGTEXT的尺寸不UNLIMITED
- 1. ASP.NET会话大小限制
- 2. 会话:会话大小限制
- 3. wincache会话文件大小限制
- 4. 笨 - 会话用户数据大小
- 5. 春天限制最大会话;限制最大用户数
- 6. 限制Facebook共享对话框大小
- 7. LDAP限制大小限制
- 8. 数据库会话存储大小限制
- 9. 笨API会话
- 10. ASP.Net - 会话限制
- 11. 限制在笨
- 12. 限制在笨
- 13. fprintf大小限制
- 14. 限制UITableView大小
- 15. innerHTML大小限制
- 16. hclust大小限制?
- 17. XTS大小限制
- 18. 限制流大小
- 19. 限制JSpinner大小
- 20. 限制iframe大小
- 21. UIWebview大小限制
- 22. Imshow()大小限制
- 23. XMLHTTPRequest大小限制
- 24. 笨会话cookie域
- 25. 笨会话问题
- 26. 数据会话笨
- 27. 笨访问会话
- 28. 笨会话问题
- 29. 大小限制绘制CanvasRenderingContext2D
- 30. 笨会话不会设置
我不确定。但如果是这样,那将是非常愚蠢的。 –
如果保存到数据库,数据的确会受到保存数据的字段大小的限制。所以如果你使用'TEXT',你应该有足够的存储空间。 –
如果你看看session.php的第293行,它仍然会设置cookie。 – ringerce