cookie 是怎么工作的?
首先必须明确一点,存储cookie是浏览器提供的功能。cookie其实是存储在浏览器中的纯文本,浏览器的安装目录下会专门有一个 cookie 文件夹来存放各个域下设置的cookie。
但在 localStorage 出现之前,cookie被滥用当做了存储工具。什么数据都放在cookie中,即使这些数据只在页面中使用而不需要随请求传送到服务端。当然cookie标准还是做了一些限制的:每个域名下的cookie 的大小最大为4KB,每个域名下的cookie数量最多为20个(但很多浏览器厂商在具体实现时支持大于20个)。
如何设置 cookie?
setcookie每次只能设置一个kookie,因此,要使用cookie保存多个值需要设置多个cookie,但最多设置20 个。
setcookie("username", "yanglijun", time()+3600);
setcookie("age", "11", time()+3600);
setcookie('sex','男',time()+3600);
如果设置cookie过期,只需把时间设置为-的就可以:
setcookie("username", "yanglijun", time()-1);
var_dump($_COOKIE['username']);
如何修改、删除
修改 cookie
要想修改一个cookie,只需要重新赋值就行,旧的值会被新的值覆盖。但要注意一点,在设置新cookie时,path/domain这几个选项一定要旧cookie 保持一样。否则不会修改旧值,而是添加了一个新的 cookie。
删除 cookie
删除一个cookie也挺简单,也是重新赋值,只要将这个新cookie的expires选项设置为一个过去的时间点就行了。但同样要注意,path/domain/这几个选项一定要旧cookie 保持一样。