1
我使用的是Firefox 3.6.10(OS X Intel),浏览器收集新的Cookie,而不是过期(“删除”)旧的Cookie。Firefox不删除过期的Perl CGI :: Cookie cookies
这些cookies是通过Perl的CGI
和CGI::Cookie
模块创建和添加的。
我创建并添加一个cookie如下:
my $myNewCookie = new CGI::Cookie(-name => "$myCookieName",
-value => { 'key1' => $value1, 'key2' => $value2 },
-expires => '+8h',
-secure => 1
);
print redirect(-URL => "$hostURL$redirect",
-cookie => $myNewCookie);
下面是我试图让他们到期:
sub clearCookie {
my $myOldCookie = cookie(-name => "$myCookieName",
-value => '',
-expires => '-1d',
-secure => 1);
print header(-cookie=>$myOldCookie);
# ...
}
这里是发生了什么:
- 我运行“addCookie”脚本
- 脚本添加cookie
- 我跑了“clearCookie”脚本
- 的cookie的到期日期不会改变
- 我再次运行“的addCookie”脚本
- 该脚本将用更新过期饼干日期
我可以继续前进,Firefox只会累积更多饼干而不会过期任何饼干。
我的脚本在谷歌浏览器和Apple Safari的当前版本下工作,但Firefox似乎不合作。
有没有我缺少的设置,它会正确地告诉Firefox调整我的cookie的到期日期?
感谢您的建议。
嗯,我想知道这是为什么CPANTesters过滤器偏好cookie似乎也不会删除它自己......只有切线相关,但在过去几天我感到沮丧。 :-) – 2011-01-31 15:52:17