Perl会话管理

时间:2012-04-10 13:24:06

标签: perl session cgi

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

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

谢谢, 克里希纳

2 个答案:

答案 0 :(得分:3)

如果您在每个请求中获得新会话,正如其他人指出的那样,您不会在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的过期设置。

答案 1 :(得分:0)

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