所以我使用Perl的CGI模塊創建的cookie,而我做的是這樣:perl的餅乾錯誤的時間
my $cookie = CGI::Cookie->new(-name => "$name",
-value => "$val",
-expires => "$expiration_date",
-path => $cookie_path,
-secure => 0
);
print "Set-Cookie: $cookie\n";
,且Cookie的瀏覽器設置,唯一的問題是,時間不匹配跟我放的有效日期一致。例如,如果我將+ 1d設爲過期日期,那麼它確實會執行類似+ 1d - 幾個小時的操作。我檢查了我的系統時間,看看是否是這個問題,但我的系統時間是正確的。然後,我打印出來的餅乾,我得到這個:
Actual Time of cookie creation: 6/4/2012 12:10:02 PM
COOKIE: session_id=534fec49c864d8cf0325779b0921b6be1338829802484; path=/; expires=Tue, 05-Jun-2012 17:10:02 GMT
以上strage的事情是,我記錄cookie創建的實際時間與Perl的「本地時間(時間())」的功能,但它記錄不同的時間比我的日期命令輸出(所以不是實際的當前時間)!然後cookie上的到期時間實際上是正確的,但它在錯誤的時區。
所以我的服務器是在東部時區,當我運行date
命令:
Mon Jun 4 12:05:12 EST 2012
但是,該cookie被設定爲GMT時區,我認爲這是問題。除了date
之外,還有一次我應該在服務器上設置嗎?如果有幫助的話,我在CentOS 5上運行。謝謝!
哇,好吧,我不覺得愚蠢!所以即使在chrome中它說cookie是在2012年6月4日星期一下午5:08:09創建的,它會在2012年6月5日星期二下午1:10:02到期,並且我指定了過期日期的+1d,這就是正確?這似乎很奇怪,因爲那不是24小時的全部。 – srchulo
@srchilo,再次,它是一個完整的24小時。 – ikegami