我在Perl Web应用程序中使用CGI::Session
进行会话管理。我能够
使用file
会话驱动程序创建会话,但我无法获取现有会话,也无法访问存储的会话参数。
我正在尝试获取现有会话,但它正在创建新会话
和查询字符串$CGISESSID
都是相同的但$session
在这里我得到的是不同的
这是一个全新的,所以我无法从会话中获取存储的参数。
请帮我解决这个问题。
谢谢, 克里希纳
答案 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)