介绍
在 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);
?>