设置Cookie
可以使用 setcookie()
函数来设置一个Cookie。该函数的语法如下:
setcookie(name, value, expire, path, domain, secure, httponly);
name:Cookie的名称。
value:Cookie的值。
expire:Cookie的过期时间,是一个Unix时间戳。
path:Cookie在服务器上的有效路径。
domain:Cookie在服务器上的有效域名。
secure:是否仅通过HTTPS传输Cookie。
httponly:是否将Cookie仅限于HTTP协议访问,防止客户端脚本访问。
读取Cookie
可以使用 $_COOKIE
超全局变量来读取Cookie的值。例如:
if (isset($_COOKIE["user"])) {
echo "欢迎 " . $_COOKIE["user"];
}
删除Cookie
删除Cookie的方法是设置其过期时间为过去的时间。例如:
setcookie("user", "", time() - 3600);
注意事项
设置Cookie的位置:
setcookie()
函数必须在页面的任何输出(包括HTML标签、echo语句等)之前调用,否则会报错“headers already sent”。Cookie的有效期:如果未设置过期时间,Cookie将在浏览器会话结束时删除。
Cookie的安全性:Cookie可以被用户轻松修改,因此不应存储敏感信息。可以使用加密或签名来确保Cookie数据的完整性。
跨域问题:Cookie默认仅在设置它们的域名和路径下有效。如果需要跨域访问,需要在设置Cookie时指定
domain
和path
参数。大小限制:每个Cookie的大小通常限制在4KB左右,且每个域名下的Cookie数量也有一定限制。
示例
以下是一个完整的示例,展示如何设置、读取和删除Cookie:
<?php
// 设置Cookie
setcookie("user", "John Doe", time() + (86400 * 30), "/"); // 30天后过期
// 读取Cookie
if (isset($_COOKIE["user"])) {
echo "欢迎 " . $_COOKIE["user"];
} else {
echo "欢迎 新用户";
}
// 删除Cookie
setcookie("user", "", time() - 3600);
?>