Cookie是客户端技能,当客户端要求做事器的时候,随身携带数据过去
例如:我们去超市购物,买很多东西,超市会给我们办会员卡,会员卡就会保存我们购买的商品信息,往后我们只须要拿着会员卡就可以
Cookie事理先容
当客户端要求做事器时,做事器会见告浏览器在自己身上做一个标记(cookie),这样,往后浏览器都会携带标记去要求做事器。
Cookie运用处景
场景1:最近浏览过哪些商品?
利用cookie实现的,将点击浏览的商品保存到cookie文件,往后再访问的时候,再去读取cookie文件中的商品
场景2:登录时,如果选择记住用户名、下次自动登录,就会把本次登录成功的用户名保存到cookie中,然后再输入框读取
Cookie基本利用
创建cookie
关于setcookie( )的7个参数
参数1:保存的cookie变量名称
参数2:变量对应的值
参数3:cookie文件的有效期
参数4:有效路径
默认情形只许可访问当前目录、当前目录子目录下面的cookie,不能访问上一级目录里面定义的cookie
我们可以通过第4个参数设置为/ ,设置cookie起浸染的路径:
/ 表示做事器的根目录,也便是在全体做事器的根目录下都起浸染
setcookie('name','zhangsan',time()+100,'/');
参数5:有效域名(cookie不支持跨域利用,可以通过参数5指定cookie在哪个域名下起浸染)
参数6:是否只许可在https协议下利用
如果设置为true,就表示该cookie只能在https协议下进行传输
参数7:为了防止cookie被挟制定义的参数,只许可在http协议下传输(在web做事器下进行传输)
如果设置为false,许可该cookie在任何协议下都能传输
读取cookie(查询)
echo $_COOKIE['name'];
删除cookie
先将cookie的有效期设置为过期
再将$_COOKIE超全局数组中的cookie变量删除
PHP中删除cookie
Cookie细节
Cookie默认每个域名下最多创建20个cookie,每个cookie文件最多存储4K旁边的数据,当然chrome浏览器创建的cookie更大18KB
setcookie前面不能有任何输出,echo 、var_dump()等
由于setcookie是做事器见告浏览器的,见告浏览器在自己身上创建cookie文件,做事器向浏览器回应信息是通过header头信息回应的
正常的http要求时,先向浏览器发出header头信息,再输出内容,如果先echo,再发出header头信息的时候,就违反了http协议