会话技术cookie,session

1)cookie技术:是有web服务器保存在用户浏览器(客户端)上的小文本文件(身份证技术)

2)session技术:是将数据保存到服务器端,session技术的实现依赖于cookie技术(银行卡技术)

设置cookie信息

setcookie(名字,值):设定cookie信息

1)cookie名的设置:字符串,第一个参数

2)cookie值得设置:第二个参数

3)cookie值得类型要求:必须是简单类型中的整数或者字符串


会话技术cookie,session_第1张图片

读取cookie信息

1)$_COOKIE 数组的使用

会话技术cookie,session_第2张图片

cookie(会话技术)能够实现跨脚本共享数据

cookie生命周期

指cookie在浏览器生存时间

1)默认(不设定)时的生命周期:不设定周期默认是关闭浏览器(会话结束)

2)设定为一个常规日期戳的周期:通过setcookie第三个参数可以限定生命周期,用时间戳来管理,从格林威治时间开始

会话技术cookie,session_第3张图片

3)设定为“0”的周期:在第三个参数设定生命参数的时候,用0代替生命周期

会话技术cookie,session_第4张图片

4)删除一个cookie的做法:服务器没有权限去操作浏览器上的内容,可以通过设定生命周期让浏览器自动判定cookie是否有效:无效就清楚

4.1)

4.2)设定时间戳过期

会话技术cookie,session_第5张图片
比time()小就行

cookie作用范围

不同的文件夹层级中,设定的cookie默认是在不同的文件夹下有访问限制。上层的cookie可以在下层中访问,反之不行

1)默认(不设定)的范围:上层看不到下层,下层能看到上层的内容

要注意:2)设定为‘/’的含义:告知浏览器当前cookie的作用范围是网站根目录

setcookie(名字,值,生命周期,作用范围)

cookie跨子域

跨子域:在同一级别域名下,myyyyy.com(一级域名),可以有多个子域名(www.myyyy.com和gz.myyyyy.com)他们之间是大件在不同服务器上(不同文件夹 两个),但是可以通过cookie设置实现对应的cookie共享访问。但是默认不允许跨域名访问

1)设定cookie的有效域名:不同的域名(包含主机)之间不能共享cookie

setcookie(名字,值,生命周期,作用范围,有效域名)

会话技术cookie,session_第6张图片

2)不设定时的默认有效域名

会话技术cookie,session_第7张图片

3)跨子域的设定方法:在设定域名访问时,设定上级域名即可:myyyy.com,这个是所有以myyyy.com结尾的网站都可以共享cookie

会话技术cookie,session_第8张图片

cookie数组数据

cookie本身只支持简单数据(数字或者字符串),能够保留的数据本身有限,也不成体系。如果需要使用cookie来保留一组数据的话,想办法凑成数组。(cookie不支持数组)

1)设置形式:setcookie(‘c1[k1]’,值)

会话技术cookie,session_第9张图片

2)读取形式:$_COOKIE['C1']['K1']

会话技术cookie,session_第10张图片

session

原理:

会话技术cookie,session_第11张图片

session基本使用

启用session,任何时候都需要开启session(脚本使用到$_session就开启一次)

$_session是通过session_start函数的调用才会有定义, 没有直接定义,所以要开启

会话技术cookie,session_第12张图片

设置session信息

如果想存储数据到session,只要不断给$_session数据添加元素就可

会话技术cookie,session_第13张图片

读取session信息

$_session就是一个数组,怎么存怎么访问

会话技术cookie,session_第14张图片

会话技术的本质是为了实现跨脚本共享数据:在一个脚本中定义数据,在另一个脚本中保存数据

会话技术cookie,session_第15张图片

一个脚本session_start往里面存,另一个脚本取(很简单)

删除一个session信息

就是删数据

unset($_session[元素下标]) 删除指定session数据

会话技术cookie,session_第16张图片

删除全部session信息

会话技术cookie,session_第17张图片
变成空数组

销毁session

删除session对应的session文件

session_destory()

session垃圾回收机制

垃圾回收参数设置

1)session.gc_maxlifetime=1440:规定的session文件最大生命周期是1440秒,24分钟

2)session.gc_probability = 1:垃圾回收概率因子

3)session.gc_divisor= 1000:垃圾回收概率分母

默认的触发概率是1/1000

禁用cookie后如何使用session

禁用cookie后不能使用session原因:

session技术需要利用cookie技术来保存sessionid,从而使得php能够在跨脚本的时候得到相同的sessionid,从而访问同一个session文件

实现无cookie使用session

方案1:利用php提供的session函数:session_id和session_name来获得和设置sessionid

会话技术cookie,session_第18张图片
1获得id和名字
会话技术cookie,session_第19张图片
2
会话技术cookie,session_第20张图片
3


会话技术cookie,session_第21张图片
4

方案2:利用session集中已经提供的解决方案自动操作

会话技术cookie,session_第22张图片

你可能感兴趣的:(会话技术cookie,session)