需求:跨脚本共享数据(变量信息)
会话技术
会话:当前通话,当前用户在当次打开浏览器不关闭的过程称为一次会话
会话技术:指在浏览器不关闭期间,访问一个网站的多个网页的时候,能够实现信息的跨脚本共享。
会话技术分为两类:cookie和session
COOKIE技术
cookie技术:是一种服务器将数据保存到浏览器,然后浏览器在下次访问该网站的时候,会自动将服务器保存的数据携带给服务器的技术。
cookie原理
cookie操作
1. 通过header设置响应头(显示的修改HTTP响应头)
header(‘set-cookie:名字=值’);
后续访问就可以访问到cookie
PHP中想要获取cookie都是通过超全局预定义变量$_COOKIE,$_COOKIE是一个数组,会保存当前浏览器携带过来的全部cookie数据。
浏览器关闭
2. 使用setcookie函数设定cookie
setcookie(名字,值);
cookie跨脚本共享
setcookie设置cookie
cookie过期
cookie保存在浏览器的有效时间,如果当前时间已经达到了cookie的生命上限,意味着cookie就会失效,浏览器就不会携带cookie去访问服务器。
默认的cookie的失效时间是浏览器关闭(会话结束)
在setcookie函数第三个参数,就是用来控制cookie的生命周期,默认是0,代表浏览器关闭就失效
通过setcookie的第三个参数,可以主动控制cookie的失效时间:使用有效期(时间戳)
控制cookie在浏览器关闭之后也不过期
cookie的作用域
cookie只能给当前文件及其子目录里面的文件共享,但是默认的是不能给父目录的文件共享。
通常,对网站进行设计的时候,需要的整个网站都能够共享cookie,需要通过setcookie的第四个参数:作用域,来进行控制。设置整站的可以通过相对路径“/”(网站根目录)
跨域共享cookie
在不同的域名之下都能共享cookie数据。
一级域名:域名之前只有一级名称:itcast.cn
二级域名:在一级域名有两级名称:www.itcast.cn
跨域共享cookie:指的是不同的二级域名能够共享数据,前提是他们的一级域名相同。
通过setcookie的第五个参数来实现。
$_COOKIE操作
$_COOKIE不能存放数组,默认的$_COOKIE只能是一个一维数组。
擦边球:php会主动将[]当成数组处理,但是浏览器不会