2017-02-20 52 views
0

我無法刪除在Chrome中特定的Cookie,調試器不拿起任何東西,雖然這是在另一個發現SO線程相同的代碼JS + PHP - 刪除特定的Cookie

reset.php

<?php 
session_start(); 
?> 

<html> 
<head> 
<script type="text/javascript"> 
    // Option 1 - set cookie to null 
    //$.cookie('welcome_<?php echo $_SESSION['myusername']; ?>', null); 

    // Option 2 - delete specific cookie 
    delete_cookie('welcome_<?php echo $_SESSION['myusername']; ?>'); 

    // relocate back to index.php 
    window.location = 'index.php'; 
</script> 
</head> 

<body> 
</body> 

</html> 

我試圖通過delete_cookie直接刪除cookie,也設置cookie爲null,都沒有結果。

我對JavaScript不太好,如果有人能指出我正確的方向,將不勝感激。一定是簡單的事情。

謝謝

+0

你能告訴我們delete_cookie函數嗎? –

+1

沒有這種名爲'delete_cookie()'的php函數。如果你想刪除一個cookie,你必須'setcookie()'過去。您還需要記住,Cookie是特定於客戶端的,因此除非他們訪問該頁面,否則無法刪除人員X的Cookie。 – Darren

回答

2

我使用了一種名爲JSCookie的東西。你可以輕鬆地在JavaScript中做Cookies.remove('Cookie_name');

1. JSCookie Repository
2. JSCookie Download

+0

謝謝,這對我來說更清潔和簡單。 – Armitage2k

+2

@ Armitage2k有趣的事實! CookiesJS曾經是一個jQuery插件,但分開了,現在它只是它自己的JavaScript庫,這使得管理cookie變得容易很多!你可以做'Cookies.set('cookie',1,{expires:6});','Cookies.remove('cookie');'和Cookies.get('cookie');'' –

1

您可以使用JavaScript以到期日設置爲時間小於當前時間像如下─

document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 

,您可以使用刪除Cookie刪除Cookie php到 -

unset($_COOKIE['cookiename']); 
// or you may also remove cookie by setting cookie less than current time 
setcookie('cookiename', null, time()-3600); 
1

這可能會幫助你:3層的功能設置,獲取和刪除cookies

function setCookie(key, value) {   

      document.cookie = key + '=' + value; 
     } 

function getCookie(key) { 
      var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); 
      return keyValue ? keyValue[2] : null; 
     } 

function delete_cookie(name) { 
      document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
     } 

一個乾淨的方式來刪除Cookie是清除$_COOKIE價值和瀏覽器cookie文件的兩個:

if (isset($_COOKIE['key'])) { 
    unset($_COOKIE['key']); 
    setcookie('key', '', time() - 3600, '/'); // empty value and old timestamp 
} 

將該值設置爲「 「以及到昨天(或過去的任何日期)的失效日期

setcookie("hello", "", time()-3600); 

然後,Cookie將在下次頁面加載時過期。