PHP Cookie

介绍

在 PHP 中,Cookie 是一种用于存储小量数据的机制。它们被广泛用于跟踪会话、个性化设置等方面。本教程将详细解释如何在 PHP 中使用 Cookie。

创建 Cookie

要在 PHP 中创建一个 cookie,你可以使用 setcookie() 函数。这个函数有几个参数:

  • name: cookie 的名称。
  • value: cookie 的值。
  • expire: 定义了 cookie 何时过期。默认情况下,cookie 在会话结束时(即用户关闭浏览器时)就会被删除。要让 cookie 持久化,可以将该参数设置为未来的某个时间戳。
  • path: 定义了哪些路径上的页面可以访问该 cookie。如果没有设置这个参数,默认情况下,cookie 只能被当前文件夹中的页面访问。
  • domain: 定义了哪些域名可以访问该 cookie。
  • secure: 如果设置为 true,那么 cookie 只会通过 HTTPS 协议发送到服务器。
  • httponly: 如果设置为 true,那么 JavaScript 将无法访问 cookie,这可以增加安全性。

下面是一个创建名为 user 的 cookie,其值为 John Doe,有效期为一天的示例:

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>

读取 Cookie

要在 PHP 中读取 cookie,你可以使用超全局变量 $_COOKIE。这个变量是一个关联数组,其中包含所有的 cookie:

<?php
if(!isset($_COOKIE[$cookie_name])) {
  echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
  echo "Cookie '" . $cookie_name . "' is set!<br>";
  echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

修改 Cookie

要修改一个 cookie,你需要再次调用 setcookie() 函数。新的值将替换旧的值:

<?php
$cookie_value = "Alex Poe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>

删除 Cookie

要删除一个 cookie,你需要将其过期时间设置为过去的某个时间:

<?php
// 将过期时间设置为过去的某个时间点来删除该cookie
setcookie($cookie_name, "", time() - 3600);
?>