PHP - 设置Cookie过期+时间

时间:2011-10-28 16:00:00

标签: php cookies

我的计算机上没有设置cookie。它适用于本地但不适用。我只希望cookie存在20分钟。我能想到它不起作用的唯一原因是因为服务器处于状态。我提前x小时。因此,cookie设置时间已经过期。这是对的吗?

setcookie($cookiename, $cookie, time() + 1200);

如果服务器时间是早上6点,我的时间是下午12点。 cookie会在上午6:20或下午12:20到期吗?

如果是前者,如何根据用户当地时间设置cookie到期时间?如果是晚些时候我会在周一拍摄更多麻烦。

2 个答案:

答案 0 :(得分:1)

我过去遇到过类似的问题,我总是给出的建议是确保Cookie(如果设置在不同的时区)到期时间至少为25小时。这使任何地方的任何人都可以使用cookie。在很多情况下,无效的cookie =无访问权=一个大问题。

现代计算已对此进行了预订,同步时间将确保Cookie始终在用户本地时间设置。也就是说,仍然有例外。

20分钟是启用cookie的非常短的时间,考虑增加它。如果cookie仍未在本地设置,我会假设您的浏览器已阻止来自服务器的传入cookie。

答案 1 :(得分:0)

time()函数将获得服务器时间,但我相信Cookies使用GMT时间。

从PHP获取GM时间的最简单方法是使用:

<?php
  $gmtime = gmdate('U');
?>

所以你要像这样设置cookie:

setcookie($cookiename, $cookie, gmdate('U') + 1200);
相关问题