【问题标题】:Perl Session managementPerl 会话管理
【发布时间】:2012-11-02 13:21:17
【问题描述】:

我在我的 Perl Web 应用程序中使用CGI::Session 进行会话管理。我能够 使用file 会话驱动程序创建会话,但我无法获取现有会话并且无法访问会话的存储参数。

我正在尝试获取现有会话,但它正在创建新会话 和查询字符串$CGISESSID 都相同,但$session 在这里我得到的是不同的 这是一个全新的,所以我无法从会话中获取存储的参数。 请帮我解决这个问题。

谢谢, 克里希纳

【问题讨论】:

  • 这里典型的第一次错误:您根本没有在正确的时间将会话 cookie 发送给客户端/用户 1),2)。正如 Borodin 所说,没有看到您的代码,任何人都无法帮助您。

标签: perl session cgi


【解决方案1】:

如果您在每次请求时都获得新会话,正如其他人指出的那样,您没有在 cookie 中发送会话 ID。如果您使用 CGI.pm 来处理您的 HTTP 标头,请执行以下操作:

print $q->header(-cookie => $session->cookie);

如果您将 CGI::Application 用于您的应用程序框架,请在 setup() 或 cgiapp_init() 中执行此操作(如果有的话)

$self->header_add(-cookie => $session->cookie);

或者,您可以使用 CGI::Session 自己的 header(),默认情况下使用'CGI::header 方法:

print $session->header()

建议使用 CGI::Session 的实用程序(例如 cookie 和/或标头),因为它们尊重 cookie 的过期设置。

【讨论】:

    【解决方案2】:

    你在做什么 打印 $session->header() 在打印 html 内容之前?

    【讨论】:

      猜你喜欢
      • 2011-04-03
      • 1970-01-01
      • 2012-10-11
      • 2011-04-29
      • 2011-10-22
      • 2011-08-01
      • 2012-11-12
      • 2014-06-19
      • 2016-06-27
      相关资源
      最近更新 更多