gpt4 book ai didi

perl cookie 时间错误

转载 作者:行者123 更新时间:2023-12-03 14:44:22 25 4
gpt4 key购买 nike

所以我正在使用 Perl 的 CGI 模块创建 cookie,我是这样做的:

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 的操作 - 几个小时。我检查了我的系统时间,看看是否是问题所在,但我的系统时间是正确的。然后我打印出 cookie,我得到了这个:

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

上面的诡异之处在于,我使用 perl 的“localtime(time())”函数记录了 cookie 创建的实际时间,但它记录的时间与我的 date 命令输出的时间不同(所以不是实际的当前时间) !然后cookie上的过期时间其实是对的,只是时区不对。

所以当我运行 date 命令时,我的服务器位于东部时区:

Mon Jun  4 12:05:12 EST 2012

但是,cookie 设置为 GMT 作为时区,我认为这是问题所在。除了 date 之外,我还应该在服务器上设置其他时间吗?如果有帮助的话,我正在 CentOS 5 上运行。谢谢!

最佳答案

这些时间实际上是相等的(美国东部标准时间 12:00 是格林威治标准时间 17:00)。请注意,规范要求使用 cookie 以 GMT 指定到期时间。反过来,您的浏览器需要自动将时区转换回来。

总之:一切都在按理说。

关于perl cookie 时间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10888597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com