第29章 PHP 会话控制:Cookie 详解

一、Cookie 是什么

Cookie 是服务器发给浏览器,保存在客户端本地的小型文本数据。
作用:记录用户信息、记住登录状态、保存浏览偏好、免登录。

二、Cookie 特点

1. 存储在浏览器客户端
2. 大小有限,单个约4KB
3. 可设置过期时间
4. 每次请求浏览器自动携带Cookie到服务器
5. 不安全,可被用户篡改、清除

三、设置 Cookie 语法

php

setcookie(键名, 值, 过期时间, 有效路径, 域名);
 

四、基础设置示例

php

// 设置cookie,默认浏览器关闭就失效
setcookie('username','zhangsan');
 

五、设置带过期时间的Cookie

php

// 3600秒 = 1小时过期
setcookie('username','zhangsan',time()+3600);

// 7天有效期
setcookie('nickname','帅哥',time()+7243600);
 

六、读取 Cookie

通过超全局变量  $_COOKIE 

php

echo $_COOKIE['username'];
 

七、Cookie 路径与域名

1. 有效路径  / :整站所有页面都能用

php

setcookie('name','test',time()+3600,'/');
 

2. 域名:可设置子域名共享Cookie

八、删除 Cookie

原理:把过期时间设为过去时间

php

setcookie('username','',time()-1);
 

九、Cookie 数组用法

可以存放数组形式数据

php

// 设置
setcookie('user[name]','张三');
setcookie('user[age]','20');

// 读取
print_r($_COOKIE['user']);
 

十、Cookie 注意事项

1. setcookie 必须在页面输出之前调用,否则报错
2. Cookie 只能存字符串,自动序列化
3. 用户可手动清空、禁用Cookie,程序要做兼容
4. 敏感数据不能存在Cookie,容易泄露篡改
5. 不能存大数据,只适合存标识、昵称、状态

十一、本章核心总结

1. Cookie 存客户端,由服务器下发、浏览器保存
2. 设置: setcookie() ,读取: $_COOKIE 
3. 过期时间用  time()+秒数 
4. 删除Cookie:赋值为空,时间设为过去
5. 适合记住登录、偏好设置,不适合存敏感隐私数据
【瓜分奖池】PHP基础第二十九章 第5张插图