【发布时间】:2018-02-19 01:28:18
【问题描述】:
我尝试将电子商务功能添加到旧项目中,因此我仍然需要旧的会话处理程序。我在这个项目中使用 PHP v7.1.14 和 Session2DB (https://github.com/voku/session2db/tree/4.0.0)。现在我对这个“遗留项目”+ Symfony 3.4.4 + Sylius 1.1.0 和会话处理有一个奇怪的问题。
Symfony 会话配置:
session:
storage_id: session.storage.php_bridge
handler_id: ~
信息:https://symfony.com/doc/3.4/session/php_bridge.html
错误:如果我尝试登录 Sylius 的管理视图,我会看到此错误
session_start():解码会话对象失败。会话已 销毁
...知道如何调试/修复此问题吗?
编辑:如果我尝试在遗留项目中使用本机 php 会话处理 + 上述 Symfony 配置,我会收到以下错误。所以我认为解码错误是 Session2DB 中的东西。
无法从会话中反序列化安全令牌。
...也许知道如何调试/修复这个问题?
【问题讨论】:
-
您在会话中存储什么样的数据?是偶然的unicode字符吗?
-
是的,碰巧也有unicode,但是数据库和数据库连接等使用的是utf8mb4。
-
serialize()ing 怎么样?我的猜测是会话处理程序 (Session2DB) 不知何故无法读取会话中的数据。 -
是的,也许...我在这里找到了一篇关于“legacy-session”+ Symfony 的旧博文 -> tech.trivago.com/2015/08/26/writing-to-legacy-session,他们还建议检查 php 中的“session_encode”。