my $arr;
%cookies = CGI::Cookie->fetch;
for (keys %cookies) {
$arr = ($cookies{$_});
}
@arr1 = split("=", $arr);
@arr2 = split(";", $arr1[1]);
$cgi_session = CGI::Session->load($arr2[0]);
print "Content-Type: text/html\n\n";
if ($cgi_session->is_expired) {
print "session expire\n";
}
else {
print "session valid\n";
}
会话初始化为1分钟后过期但在检查时总是进入其他位置 如果过期了虽然会话实际到期,因为代码在一分钟后不起作用。 我想检查是否已过期以将用户重定向到登录页面。
答案 0 :(得分:0)
首先,您的代码中没有显示正在设置cookie的内容。目前尚不清楚这是怎么回事。
其次,当您使用CGI :: Session时,应在脚本退出之前调用$cgi_session->flush()
。
第三,您确定要手动解决所有这些问题,而不是使用Perl的Web框架作为起点吗?