2011-01-31 134 views
1

我使用的是Firefox 3.6.10(OS X Intel),浏览器收集新的Cookie,而不是过期(“删除”)旧的Cookie。Firefox不删除过期的Perl CGI :: Cookie cookies

这些cookies是通过Perl的CGICGI::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);                                              
    # ... 
} 

这里是发生了什么:

  1. 我运行“addCookie”脚本
  2. 脚本添加cookie
  3. 我跑了“clearCookie”脚本
  4. 的cookie的到期日期不会改变
  5. 我再次运行“的addCookie”脚本
  6. 该脚本将用更新过期饼干日期

我可以继续前进,Firefox只会累积更多饼干而不会过期任何饼干。

我的脚本在谷歌浏览器和Apple Safari的当前版本下工作,但Firefox似乎不合作。

有没有我缺少的设置,它会正确地告诉Firefox调整我的cookie的到期日期?

感谢您的建议。

回答

3

看起来这是一个带有Firefox的known and frustrating bug

+0

嗯,我想知道这是为什么CPANTesters过滤器偏好cookie似乎也不会删除它自己......只有切线相关,但在过去几天我感到沮丧。 :-) – 2011-01-31 15:52:17