2017-06-30 228 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! –