【发布时间】: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() 这是它自己的格式。