跨浏览器Cookie过期不一致

时间:2011-09-21 17:14:41

标签: php browser cookies cross-browser

我正在寻找一种方法来针对所有浏览器设置持续时间较短的Cookie。显然,每个浏览器都以不同的方式处理PHP setcookie方法。以下是我的结果。

PHP代码:

setcookie("TestCookie", $value, time()+7200, "/", ".domain.com", 1, true);

结果:

OPERA 11.10

Local time of test: 1316621628
PHP Server Time: Wed Sep 21 07:58:35 PDT 2011
Cookie Expiration Time: 2011-09-21 - 20:58:35

Chrome 6.0.472.63

Local time of test - 1316621761
PHP Server Time - Wed Sep 21 08:01:21 PDT 2011
Cookie Expiration Time - Wednesday, September 21, 2011 9:01:21 PM

Firefox 4

Local time of test: 1316622064
PHP Server Time: Wed Sep 21 08:07:38 PDT 2011
CookieExpiration Time: Wednesday, September 21, 2011 10:22:50 PM

Safari 3.2.3

Local time of test: 1316622359
PHP Server Time: Wed Sep 21 08:10:48 PDT 2011
CookieExpiration Time: 9/21/11 5:10 PM

Internet Explorer 8

Local time of test: 1316623009
PHP Server Time: Wed Sep 21 08:21:37 PDT 2011

Cookie Data: 
TestCookie
x
domain.com/
9728
3932016640
30177410
2837190416
30177404

正如您所看到的,Cookie的到期日期/时间差异很大,从预期工作到过去几个小时到仅1小时!非常令人沮丧。

除了尝试上述方法之外,我还尝试通过unixtime设置确切的到期日期/时间...我已经在PHP级别的time()或使用浏览器的unixtime通过JavaScript的。

setcookie("TestCookie", $value, 1316621928, "/", ".domain.com", 1, true);

每个浏览器也会以不同方式处理此问题。我似乎无法找到一种适用于所有浏览器的方法。有人知道一种方法可以实现这个吗?

谢谢。

0 个答案:

没有答案