在 PHP 中刪除 Cookie

Subodh Poudel 2023年1月30日
  1. 在 PHP 中使用 setcookie() 函式設定 Cookie
  2. 在 PHP 中使用 setcookie() 函式刪除 Cookie
在 PHP 中刪除 Cookie

本文將介紹幾種在 PHP 中刪除 cookie 的方法。首先,我們將設定 cookie,然後將其刪除。

setCookie() 函式設定和刪除 cookie。

語法:

setcookie($name, $value, $expiry, $path, $domain, $secure, $httponly);
  • $name 是 cookie 的名稱。
  • $value 是儲存在客戶端系統中的 cookie 的內容或值。
  • $expiry 是 cookie 過期的時間。單位是第二。
  • $path 是伺服器上表示 cookie 可用性的路徑。例如,如果 $path 設定為 /,則 cookie 將在網站的域中可用。
  • $domain 是 cookie 可用的域或子域。
  • $secure 確保 cookie 在設定為 true 時通過安全的 HTTPS 連線從客戶端傳輸。
  • $httponly 確保 cookie 在設定為 true 時只能通過 HTTP 協議訪問。

讓我們建立一個 cookie 和變數 $cookie_name$cookie_value$cookie_expiry 來儲存 cookie 名稱、值和到期時間。

為每個變數分配 usernameSamtime()+3600。接下來,使用 setcookie() 方法並按順序提供這些變數。

接下來,使用全域性變數 $_COOKIE 訪問 $cookie_name

$cookie_name = "username";
$cookie_value = "Sam";
$cookie_expiry = time() + 3600;

setcookie($cookie_name, $cookie_value, $cookie_expiry);
print_r($_COOKIE[$cookie_name]);

輸出:

Sam

因此,我們建立了一個 cookie。cookie 在建立時間一小時後過期,因為 3600 秒等於一小時。

我們可以從檢查元素部分看到瀏覽器中的 cookie 資訊。現在,我們將在以下部分中逐步刪除 cookie。

使用 setcookie() 方法刪除 cookie。為此,我們需要保留過去的到期日期。

我們可以使用 isset() 函式在刪除 cookie 之前檢查 cookie 是否已設定。

例如,使用 isset() 函式中的 $_COOKI[$cookie_name] 變數來檢查上面建立的 cookie 是否存在。

if 塊中,使用 setcookie() 函式。在函式內部,將 $cookie_name 設定為第一個引數。

if(isset($_COOKIE[$cookie_name])) {
 setcookie($cookie_name, "", time()-3600);
}

我們為第二個引數寫了一個空字串和 time()-3600 作為到期時間。

由於 time() 函式返回自 Epoch 以來的當前時間(以秒為單位),從中減去 3600 將返回過去的時間。最後,刪除帶有 $cookie_name 的 cookie。

我們還可以在 setcookie() 函式中使用 $cookie_namenull 值來刪除 cookie。

if(isset($_COOKIE[$cookie_name])) {
 setcookie($cookie_name, null);
}

因此,我們可以使用 setcookie() 函式來刪除 PHP 中的 cookie。

作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn