2011-01-31 54 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