我的计算机上没有设置cookie。它适用于本地但不适用。我只希望cookie存在20分钟。我能想到它不起作用的唯一原因是因为服务器处于状态。我提前x小时。因此,cookie设置时间已经过期。这是对的吗?
setcookie($cookiename, $cookie, time() + 1200);
如果服务器时间是早上6点,我的时间是下午12点。 cookie会在上午6:20或下午12:20到期吗?
如果是前者,如何根据用户当地时间设置cookie到期时间?如果是晚些时候我会在周一拍摄更多麻烦。
答案 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);