【问题标题】:Symfony PdoSessionStorage Issues After Upgrading to 2.1升级到 2.1 后的 Symfony PdoSessionStorage 问题
【发布时间】:2012-10-17 07:41:20
【问题描述】:

从 2.0.X 升级到 2.1 后,我的 Symfony 应用程序出现了一些问题。该应用程序在升级之前使用 PdoSessionStorage 就好了。 The docs 说 PdoSessionStorage 在 2.1 中的配置存在一些差异,但我认为我能够进行这些更改。

我看到的问题是没有数据被添加到会话表中的 session_value(db_data_col) 列。它正在为当前会话添加一条新记录,但它使数据为空。

有人遇到过这个问题吗?

我的配置包含以下内容:

framework:
    session:
        handler_id:     session.handler.pdo
parameters:
    pdo.db_options:
        db_table:    session
        db_id_col:   session_id
        db_data_col: session_value
        db_time_col: session_time
services:
    pdo:
        class: PDO
        arguments:
            dsn:         "mysql:host=%database_host%;port=%database_port%;dbname=%database_name%"
            user:        %database_user%
            password:    %database_password%

    session.handler.pdo:
        class:     Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
        arguments: [@pdo, %pdo.db_options%]

【问题讨论】:

  • 您是否尝试过使用分析器工具栏检查数据库上运行的查询?
  • 我看了看,但我在分析器中没有看到任何关于 Session 的内容。我确实尝试在 Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler::write 中转储 $data 的值,但它只是一个空字符串

标签: symfony symfony-2.1


【解决方案1】:

我遇到了同样的问题。查看 PdoSessionHandler.php 代码后,我发现代码依赖于 session_id 是 uniq 的事实。如果您像我一样,并且基于此article 创建了会话表,则情况并非如此。

编辑:实际上是这样。我不知道为什么在我的数据库中不是这样

就我而言,要修复它,我必须清空会话表并将 session_id 字段设为 uniq

【讨论】:

  • 嗨 Yann,感谢您的回复。我试过这个,但它似乎对我不起作用。会继续尝试弄清楚。
【解决方案2】:

弄清楚发生了什么。我们发现了一些修改 $_SESSION 的旧代码。 S2.1 将它在 $_SESSION 中使用的密钥从“_symfony2”更改为“sf2*”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2014-02-02
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 2020-05-14
    相关资源
    最近更新 更多