企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
cookie 意为'甜饼' 是由W3C提出的 ,最早由NETSCAPE 社区发展的一种机制,目前cookie已经成为标准,所有的主流浏览器如IE NEtscape Firefox Opera等都支付Cookie 存储再客户端的。key-value cookie是web服务器生成的,向用户浏览器发送的一小段ASCII文本,当浏览器接受到会将其信息片段 以 键 :值 存储 对的形式保存再浏览器某个目录下的文本文件种,以后每次向同一个服务器发送请求的时候,浏览器都会发送以前存储再本地的cookie 。浏览器和服务器通过HTTP协议进行通讯,Cookie便被保存再http的请求部分(set-cookie) ![](https://img.kancloud.cn/d5/b0/d5b0d8bb631ea7616adcd31822af63f8_1247x435.png) # cookie创建 ``` setcookie() ``` ``` $_COOKIE(name,value,expre,pah,domain,secure,httponly); name 键 value 值 expre 过期时间 pah 访问的路径(也就是允许在哪个文件夹下访问) domain 域名(这里默认空 ' ' 到什么时候也是空) secure 是否通htpps访问 1是开 0是关 httponly 可以禁止js获取到 1是开 0是关 ``` ## 代码案例expre : ~~~ setcookie('name','lampol',time()+60*60); ~~~ 可以实现1小时内免登录 time()为秒+60*60 相当于1小时 注意:如果不设置过期时间,那么当关闭浏览器的时候cookie就会删除。 ## 代码案例pah : ~~~ setcookie('name','lampol',time()+(60*60*24),'/'); '/'为根目录 ~~~ 可以在任何一个文件下访问这个cookie pah这里可以设置目录 ## 代码案例secure: ~~~ setcookie('name','lampol',time()+(60*60*24),'/','',1); //这里如果服务器域名是hhtp的就无法访问,如果是https的就可以访问,如果不想用可以设置成0 那么http就可以访问了。 ~~~ ![](https://img.kancloud.cn/40/0d/400d1d5888c3faea3eebd02a1a53f886_523x389.png) 这里如果服务器域名是hhtp的就无法访问,如果是https的就可以访问,如果不想用可以设置成0 那么http就可以访问了。 ~~~ setcookie('name','lampol',time()+(60*60*24),'/','',0); ~~~ ![](https://img.kancloud.cn/d6/9a/d69a585ddf0391b715a6fa6468cff869_578x341.png) ## 代码案例httponly: ~~~ setcookie('dddd','lampol',time()+(60*60*24),'/','',1,1); ~~~ 这样js的DOM就获取不到dddd的键值了,防止XXS注入用的 如果为0 就是关闭,JS就可以获取到这个cookie (httponly 为1)如图就是获取不到ddd的键值了。 ![](https://img.kancloud.cn/7a/70/7a7083da20e3efa8070c239dfe021ed9_1020x386.png) ![](https://img.kancloud.cn/9d/11/9d1174ec00545ed1be587baa1084b750_502x369.png) (httponly 为0)如图就ddd的键值了。 ![](https://img.kancloud.cn/1c/3a/1c3ae135cdbbd1cdfa038902df7d07be_678x281.png) <br/> <br/> <br/> <br/> # cookie的访问 ## $_COOKIE ``` $_COOKIE['键'] //就可以获取 ``` 注意: cookie创建与访问不要同时出现到一个PHP文件里,要写2个PHP文件,(这里不用引入)。 ``` ``` 如果同一文件出现创建setcookie() 与获取 $_COOKIE ,第一次访问会获取不到,因为cookie的原理就是 用户 ———》访问服务器, 服务器返回一个——————》setcookie的值,然后用户再次访问的时候是 数据+cookie的————》服务器 所以用户访问第一次是不带cookie值的。 ``` ``` # 删除cookie 值加空 或者设置剩余时间 注意:设置路径的cookie删除必须带上路径否则删除不了 ``` setcookie('要删除的键',null) //值为空就删除了 ``` ``` setcookie('要删除的键',null,time()-1,'/') //时间减一 设置路径的必须加路径 ``` ``` setcookie('要删除的键',null,time()-剩余时间,'/') // 设置过期时间 设置路径的必须加路径 ```