Symfony2會話有一個令人討厭的問題。我有一輛車可以插入東西。我補充幾個項目和它的作品,但在某些項目的應用程序崩潰,告訴我 ContextErrorException: Warning: session_start(): Failed to decode session object. Session has been destroyed in ...
會話被破壞,我登錄了該網站。
我將會話存儲在數據庫中,關於會話的行也被刪除,就像乾淨的註銷一樣。 我三重檢查了所有的代碼,我沒有使我的會話失效的代碼。我也註釋了包含session->invalidate
的每行都無濟於事。
我注意到,會話清理自帶的一個功能「返回」,並在代碼返回後,我下面的代碼行之間,但他們之間沒有任何代碼。這似乎與事件/聽衆有關,但沒有一個是由我配置的。
我不知道在哪裏檢查,有什麼想法?Symfony 2會話被破壞
1
A
回答
1
基於this report和其他搜索,我的猜測是,你是在爲你的會話數據存儲多字節字符串,它變得損壞。數據庫列存儲數據的時間太短,字符串也會被截斷,導致數據庫被破壞。下面是我會看到的:
- 如果您使用數據庫進行存儲,請確保它已準備好用於多字節字符串。
- 確保您的會話數據庫列足夠大,例如
MEDIUMTEXT
而不是VARCHAR
。 - 也許有在Symfony的會話處理程序中的錯誤(因爲這很可能會被迅速引起不太可能)。
- 也許你已經以某種方式破壞了你自己的多字節字符串。檢查你沒有使用任何不是二進制安全的PHP函數。
如果找不到根本原因,我會嘗試覆蓋會話存儲處理程序,並在檢索後存儲和解碼之前對數據運行base64_encode
。但這是解決真正問題的最後手段。
0
我改變了PDOSessionHandler的write e讀取方法,而不是base64encode/decode我把utf8_encode寫入,並在讀取方法我把utf8_decode。此解決方法適用於我,但不是一個乾淨的解決方案。現在的問題是:爲什麼base64encode/decode失敗?
相關問題
- 1. TokBox會話被破壞
- 2. 會話變量被破壞
- 3. Logut會話不被破壞
- 4. Codeigniter會話自動被破壞?
- 5. 會話被破壞後引發函數
- 6. 奇怪的錯誤會話被破壞
- 7. 重定向後PHP會話被破壞?
- 8. 爲什麼PHP會話被破壞?
- 9. 會話被破壞掉了PHP
- 10. 會話是維護還是被破壞?
- 11. PHP會話在子域上被破壞
- 12. facebook註銷會話不被破壞
- 13. 會話不破壞
- 14. Cakephp會話破壞
- 15. Cookie破壞會話破壞,爲什麼?
- 16. 破壞特定會話的會話Funda
- 17. 無法破壞鉻會話
- 18. PHP會話和cookie破壞
- 19. 如何破壞會話?
- 20. 新的PHPMailer()破壞會話
- 21. 註銷後破壞會話
- 22. 使用CakePHP破壞會話
- 23. PHP - 會話隨機破壞
- 24. 會話不破壞laravel
- 25. JsApi有時會被破壞
- 26. 會話在註銷時不會被破壞?
- 27. SimpleMembershipProvider不會破壞會話後WebSecurity.SignOut
- 28. 註銷不會破壞會話
- 29. CGContextRef被破壞?
- 30. SP.NavigationNode.get_isVisible()被破壞?
我使用會話存儲以及在symfony的類Save方法的第一個指令PDO是'''bas64_encode'''。 奇怪的是,只有購物車中的某些物體組合會產生錯誤信息。 –
準確地說:在會話中存儲序列化的應用程序對象,當所有工作正常時,我可以base64解碼數據庫中的會話內容並查看所有序列化的對象。事實上,如果我手動破壞數據庫中的數據,我會得到相同的錯誤。 –
有趣。你當然仔細研究過它。你有沒有嘗試手動反序列化這些對象?也許字符串是安全的,但是反序列化失敗。另外,序列化的對象是否對於分列大小來說太長? –