PHP Cookie
Cookie 是存储在客户端计算机上的文本文件,它们保留用于跟踪目的。PHP 透明地支持 HTTP cookie。
识别回归用户涉及三个步骤
服务器脚本将一组 cookie 发送到浏览器。例如姓名,年龄或身份证号码等。
浏览器将此信息存储在本地计算机上以供将来使用
当下次浏览器向 Web 服务器发送任何请求时,它会将这些 cookie 信息发送到服务器,服务器使用该信息来识别用户。
本章将教您如何设置 cookie,如何访问它们以及如何删除它们。
用 PHP 设置 Cookies
PHP 提供了 setcookie()函数来设置 cookie。此函数最多需要六个参数,应在 <html> 标记之前调用。对于设置每一个 cookie,必须单独调用此函数。
setcookie(name, value, expire, path, domain, security);
这是所有参数的细节
name – 设置 cookie 的名称。
value – 设置命名变量的值,并且是您实际要存储的内容。
expire – 这指定自 1970 年 1 月 1 日格林尼治标准时间 00:00:00 以来的未来时间(以秒为单位)。在此之后,cookie 将无法访问。如果未设置此参数,则在 Web 浏览器关闭时 cookie 将自动过期。
path – 指定 cookie 有效的目录。单个正斜杠字符允许 cookie 对所有目录有效。
domain – 这可用于在非常大的域中指定域名,并且必须至少包含两个有效期。所有 cookie 仅对创建它们的主机和域有效。
security – 可以设置为 1 以指定 cookie 应仅通过使用 HTTPS 的安全传输发送,否则设置为 0,这意味着 cookie 可以通过常规 HTTP 发送。
以下示例将创建两个 cookie 名称和年龄,这些 cookie 将在一小时后过期。
setcookie("name", "John Watkin", time()+3600, "/","", 0);
setcookie("age", "36", time()+3600, "/", "", 0);
<html>
<head>
<title> 用 PHP 设置 Cookies</title>
</head>
<body>
echo "设置 Cookies"
</body>
</html>
打开浏览器访问脚本,然后按 F12 打开开发者模式,选择 Network(网络)选项卡,选择 Headers,可以看到如下图所示:
用 PHP 删除 Cookie
正式地说,要删除一个 cookie,你应该只使用 name 参数调用 setcookie()[也就是说想删除那个 name,把他设置成空],但这并不总是有效,不应该依赖。最安全的做法是设置一个已经过期的日期
/ 设置过去时间为当前时间的之前的 60 秒 /
setcookie("name", "", time()- 60,"/","", 0);
setcookie("age", "", time()- 60,"/","", 0);
<html><head>
<title> 用 PHP 删除 cookie</title>
</head><body>
echo "删除 cookie"
</body>
</html>
更多的 PHP Cookie