答案:PHP通过setcookie()设置、$_COOKIE读取、再次调用setcookie()更新或删除Cookie,需注意发送时机、路径一致性及安全选项。

Cookie 是 Web 开发中常用的技术,用于在客户端保存少量数据。PHP 提供了简单而有效的方式来设置、读取和删除 Cookie。下面详细介绍 PHP 中操作 Cookie 的方法。
设置 Cookie
在 PHP 中使用 setcookie() 函数来设置 Cookie。该函数必须在任何输出发送到浏览器之前调用,否则会失败。
语法:
setcookie(name, value, expire, path, domain, secure, httponly);
- name:Cookie 名称
- value:Cookie 值(自动进行 URL 编码)
- expire:过期时间(Unix 时间戳),设为 0 表示浏览器关闭时失效
- path:Cookie 有效路径,"/" 表示整个域名都可访问
- domain:允许访问 Cookie 的域名
- secure:是否仅通过 HTTPS 传输
- httponly:是否仅限 HTTP 协议访问(防止 XSS 攻击)
示例:
设置一个名为 user_name、值为 JohnDoe、有效期为 1 小时的 Cookie:
此时,当用户下次访问网站时,这个 Cookie 将被发送到服务器。
立即学习“PHP免费学习笔记(深入)”;
读取 Cookie
设置后的 Cookie 可以通过超全局数组 $_COOKIE 来读取。
本书图文并茂,详细讲解了使用LAMP(PHP)脚本语言开发动态Web程序的方法,如架设WAMP平台,安装与配置开源Moodle平台,PHP程序设计技术,开发用户注册与验证模块,架设LAMP平台。 本书适合计算机及其相关专业本、专科学生作为学习LAMP(PHP)程序设计或动态Web编程的教材使用,也适合对动态Web编程感兴趣的读者自觉使用,对LAMP(PHP)程序设计人员也具有一定的参考价值。
示例:
检查并输出 user_name Cookie 的值:
echo "欢迎回来," . $_COOKIE['user_name'];
}
注意:Cookie 在设置的当前请求中不可立即读取,需等待下一次页面加载才能从 $_COOKIE 获取。
更新与删除 Cookie
要更新 Cookie,只需使用相同名称再次调用 setcookie() 设置新值即可。
删除 Cookie 的方法是将其过期时间设为过去的时间点。
// 删除 user_name Cookiesetcookie("user_name", "", time() - 3600, "/");
注意:删除时的 path、domain 等参数必须与设置时一致,否则无法正确清除。
常见注意事项
- setcookie() 必须在输出内容前调用,包括空格、HTML 或 echo 输出
- Cookie 值会被自动 URL 编码,读取时自动解码
- 单个 Cookie 大小限制通常为 4KB,每个域名下的 Cookie 数量也有限制
- 敏感信息不应明文存储在 Cookie 中,建议加密或使用 Session 替代
- 启用 httponly 可增强安全性,防止 JavaScript 访问
基本上就这些。掌握 setcookie() 和 $_COOKIE 的使用,就能在 PHP 中灵活处理 Cookie,实现用户状态保持、偏好设置等功能。不复杂但容易忽略细节,比如路径和安全标志的设置。










