测试未过期cookie的正确方法是什么?


What's the proper way to test for an unexpired cookie?

我的代码无法忽略加载过期的cookie

当我登录一个想要被记住的用户时,我设置了一个cookie…

setcookie('mysiteCookieBlah', $token, $expiry, '/', 'https://www.mysite.com', 1, 1); 

每当他们刷新页面时,如果他们没有登录,即在会话中没有用户ID,然后我检查cookie的存在,看看我是否应该初始化自动记录他们…

if(isset($_COOKIE['mysiteCookieBlah'])) 
  $intiAutoLogin=true; 
else 
  $intiAutoLogin=false;  

当他们登出时,我过期了…

unset($_COOKIE['mysiteCookieBlah']);
setcookie('mysiteCookieBlah', "", time()-3600, '/', 'https://www.mysite.com', 1, 1);

下次页面刷新时,

if(isset($_COOKIE['mysiteCookieBlah'])) 
  $intiAutoLogin = ?

应该= false,对吗?目前,它每次都能看到这个cookie,不管它是否过期。

谢谢你看一看。

我将logout cookie代码更改为

setcookie("mysiteCookieBlah", "", time()-3600, '/');

,它成功了。我不知道为什么。