當存儲在數據庫中的會話限制爲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