在 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