PHP - Cookies

Cookie 的结构

Cookies 是在用户浏览网页时,由网页浏览器存储在用户计算机上的小块数据。它们用于在会话之间记住有关用户的信息,例如用户的偏好或登录状态。在 PHP 中,可以使用内置函数来设置和访问 cookies。

PHP - Cookies

什么是 Cookie?

Cookie 是网站放置在您的计算机硬盘上的一个文本文件。每次您访问该网站时,浏览器都会将 cookie 发送回服务器,以通知网站您的先前活动。这允许网站根据您与它们过去的互动来自定义您的体验。

Cookie 的类型

有两种类型的 cookies:会话 cookies 和持久 cookies。

  1. 会话 Cookies:这些 cookies 是临时的,当用户关闭浏览器时会被删除。它们对于存储临时信息,如购物车项目列表很有用。
  2. 持久 Cookies:这些 cookies 会保留在用户的计算机上,直到它们达到过期日期或被用户手动删除。它们用于更长期的跟踪,如维护用户偏好或登录会话。

在 PHP 中如何设置 Cookie?

在 PHP 中设置 cookie,您使用 setcookie() 函数。以下是如何操作的示例:

<?php
// 设置一个名为 "username" 的 cookie,值为 "JohnDoe",30天后过期
setcookie("username", "JohnDoe", time() + (86400 * 30), "/");
?>

在这个例子中,我们设置了一个名为 "username" 的 cookie,值为 "JohnDoe"。第三个参数是过期时间,它是通过将 30 天的秒数添加到当前时间(time())来计算的。第四个参数是 cookie 可用的路径。将其设置为 "/",意味着 cookie 在整个网站范围内可用。

使用 PHP 访问 Cookies

一旦设置了 cookie,您可以使用 PHP 的 $_COOKIE 超全局数组来访问它的值。以下是如何检索 "username" cookie 值的示例:

<?php
if(isset($_COOKIE["username"])) {
echo "欢迎回来," . $_COOKIE["username"] . "!";
} else {
echo "欢迎,访客!";
}
?>

在这段代码中,我们使用 isset() 检查 "username" cookie 是否设置。如果存在,我们显示一个带有用户名的欢迎消息。否则,我们显示一个为访客准备的通用欢迎消息。

删除 Cookies

要删除 cookie,您需要将其过期时间设置为一个过去的日期。以下是如何删除 "username" cookie 的示例:

<?php
// 删除 "username" cookie
setcookie("username", "", time() - 3600);
?>

通过将过期时间设置为一个过去的时间,浏览器将自动移除 cookie。在这个例子中,我们将过期时间设置为 1 小时前,从而有效地删除了 "username" cookie。

就是这样!您现在知道如何在 PHP 中设置、访问和删除 cookies。请记住,应该负责任地使用 cookies,因为它们可以存储敏感信息。始终确保您的网站遵循 cookie 管理和用户隐私的最佳实践。

愉快编码!

Credits: Image by storyset