2017-06-30 188 views
0

今天我遇到了一个奇怪的问题。我有一个代码,有时会在cookie中写入某些内容,有时会覆盖它。为什么有时cookie不会被覆盖或覆盖?

当我的代码不存在时,我的代码也可以工作。我的意思是,当我清除所有浏览器的cookies并执行我的代码时,一切正常。但在未知的时间之后,该cookie将保持不变,固定和坚定。我的意思是它不会被覆盖,它甚至不会被取消。

这里是我的代码:(但它的工作原理完全以及在第一)

. 
. 
    if(isset($_GET['u']) && ($_GET['u'] == 'true' || $_GET['u'] == 'false')){ 
     if(isset($_COOKIE['qanda_unanswered_status'])) { 
      if ($_COOKIE['qanda_unanswered_status'] != $_GET['u']){ 
       setcookie("qanda_unanswered_status", $_GET['u'], 2147483647); 
      } 
     } else { 
      setcookie("qanda_unanswered_status", $_GET['u'], 2147483647); 
     } 
    } 
. 
. 

    if (isset($_GET['u']) && in_array($_GET['u'], ['true', 'false']) && (!isset($_COOKIE['qanda_unanswered_status']) || $_COOKIE['qanda_unanswered_status'] != $_GET['u'])) { 
     setcookie("qanda_unanswered_status", $_GET['u'], 2147483647); 
     $_COOKIE['qanda_unanswered_status'] = $_GET['u']; 
    } 
. 
. 

这是所有关于饼干。无论如何,你有什么线索,我该如何调试这个问题?当一个cookie永远不变?我的意思是即使unset($_COOKIE['sth'])也无法摧毁它。

你有什么线索可以解决这个问题吗?

回答

2

不能使用unset()删除一个cookie,你需要设置过期过去例如:

setcookie("qanda_unanswered_status", "", time() - 3600); // one hour ago 

那么cookie将在浏览器上删除。

+0

现在工作正常吗?如果可以,你能接受答案,thnx! –