【问题标题】:Perl's CGI::Session doesn't seem to find existing session (from PHP)Perl 的 CGI::Session 似乎找不到现有会话(来自 PHP)
【发布时间】:2011-11-15 13:46:00
【问题描述】:

我正在尝试从在单独的 PHP 脚本中创建的会话中实例化 CGI::Session 对象;但是,当我 Dumper() 对象时,我看到 _CLAIMED_ID 会话 ID(与 PHP 的 session_id() 匹配)与存储在 _DATA 成员中的 _SESS_ID(或其他)不同;更重要的是,_DATA 成员没有我在 PHP 中注册的 任何 会话变量。

但是!当我使用 PHP::Session (并将相同的 sess id 传递给它的构造函数)时,这个对象确实找到了有问题的会话变量。

理想情况下,我想使用 CGI::Session,因为它似乎更健壮,而 PHP::Session 似乎更针对特定任务,所以有人可以建议我在 CGI::Session 中哪里出了问题? (我应该创建一个 PHP::Session 然后尝试将它传递给 CGI::Session 吗?)

【问题讨论】:

  • CGI:Session 实现不同于 PHP 的会话。这些文件可能会像 PHP 一样进入 esame 目录,但它们不兼容。 Perl 使用 Storable 或 FreezeThaw 进行序列化,而 PHP 使用 serialize() 这是它自己的格式。

标签: php perl session cgi


【解决方案1】:

PHP::Session 旨在与在 PHP 中创建的会话进行互操作。 CGI::Session 被设计为仅适用于 Perl 的解决方案。

CGI::Session 确实提供了多种后端实现,因此理论上有人可以为 CGI::Session 编写与 PHP 会话兼容的驱动程序、序列化程序和 id 模块。不过,似乎还没有人这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 2013-10-21
    • 2012-01-11
    相关资源
    最近更新 更多