PHP Cookie是存储在浏览器的轻量级数据机制,用于保存用户偏好等非敏感信息;通过setcookie()设置(需在输出前调用),$_COOKIE读取;应启用httponly、secure、正确domain/path以保障安全;删除需覆盖过期时间且参数一致。

PHP 中的 Cookie 是一种将少量数据存储在用户浏览器端的机制,适合保存用户偏好、登录状态标识(非敏感信息)、语言选择等轻量级持久化需求。它通过 HTTP 响应头发送给浏览器,由浏览器自动在后续请求中携带回服务器。
Cookie 的基本设置与读取
使用 setcookie() 函数向客户端写入 Cookie,必须在任何输出(包括空格、HTML、echo)之前调用。该函数至少需传入名称和值两个参数:
- setcookie('user_name', 'Alice', time() + 3600); —— 设置名为 user_name 的 Cookie,值为 Alice,有效期 1 小时
- Cookie 值会自动 URL 编码,读取时 PHP 自动解码,无需手动处理
- 读取时直接通过 $_COOKIE['user_name'] 获取,但建议先用 isset($_COOKIE['user_name']) 判断是否存在
安全与作用域控制要点
默认 Cookie 对当前目录及子目录下的所有页面可见,且可通过 JavaScript 访问,存在基础安全风险。生产环境应主动加固:
- 添加 httponly=true 参数防止 JS 读取:setcookie('token', $val, $expire, '/', '', true, true);
- 设置 secure=true 确保仅通过 HTTPS 传输(上线必备)
- 指定 domain(如 '.example.com')可跨子域名共享;设为 / 可让 Cookie 在整个站点生效
- 避免在 Cookie 中存放密码、token 密钥等敏感内容,仅存无意义标识符(如 session_id)
删除与过期 Cookie
Cookie 无法直接“删除”,只能通过覆盖方式使其立即失效:
标签: php javascript java html js cookie 编码 浏览器 session ai 浏览器端 作用
还木有评论哦,快来抢沙发吧~