天天看点

php会话COOKIE和SESSIONSESSION

#COOKIE#

##一、cookie介绍

1.Cookies就是服务器暂时存放在你的电脑里的资料(.txt格式的文本文件)

2.Cookie是由服务器端生成,发送给User-Agent(一般是浏览器)

##二、COOKied的好处

  1. 简化消磁登录
  2. 用来记录和存储一些东西
  3. 记录用户访问习惯

##三、COOKIE的创立和操作##

bool setcookie(string name,string value,int expire,stringpath,string domain,bool secure=false,$httponly=flase)
           
  1. $name,cookie的名称;
  2. $value,cookie的值,会自动进行 URL 编码。接收时会进行 URL 解码。COOKIE值的类型只能是标量数据类型,不可是数组、对象、资源
  3. $expire,cookie的有效期;
  4. $path,cookie的服务器路径;
  5. $domain,cookie的域名;
  6. $secure,规定是否通过安全的 HTTPS 连接来传输 cookie。
删除就是把数据改为空,或者时间改为0

SESSION

一、SESSION的优点和特点

  1. Session储存特定用户的回哈数据
  2. Session会将数据储存到服务器
  3. Session是基于Cookie技术的,没有Cookie就没有Session
  4. Session实在整个用户会话中,一直存在下去
  5. 一个用户会话时效:从用户登录开始,到用户登录结束;
  6. Session存储的数据量要比cookie大的多;
  7. Session存储的内容类型,不限于字符串;
  8. Session数据存储在服务器端,更安全,可靠。

##二、开启SESSION会话功能

bool seesion_star();

启动或者重用会话

S E S S I O N 变 量 是 默 认 不 存 在 的 , 要 开 启 会 话 开 才 能 使 用 SESSION变量是默认不存在的,要开启会话开才能使用 SESSION变量是默认不存在的,要开启会话开才能使用SESSION

一个网站不管添加多少个SESSION数据,最终在浏览器端只存储一个SESSION的ID值

注意:

  1. 每个需要SESSION数据的页面,都要开启SESSION功能
  2. SESSION功能,不能重复开启(同一个页面不能开2次)

##三、SESSION数据##

###1、添加SESSION数据###

S E S S I O N [ k e y ] = _SESSION[key]= S​ESSION[key]=value

###2、读取SESSION数据###

v a l u e = value= value=_SESSION[key]

###3、删除SESSION数据###

  1. 使用unset()函数来删除内存中的数据
  2. 要完全销毁数据还要销毁文件
  3. 可以利用$_SESSION=array()来赋值空数组来删除文件中交内存的数据

###4、销毁文件###

描述:删除当前的SESSION文件,不影响其它的SESSION文件

bool session_destroy(void)
           

###5、SESSION垃圾回收机制###

SESSION垃圾回收, 就是将过期的SESSION服务器文件删除的机制;

回收周期和回收概率:

  • 回收周期默认为24分钟一次,可以在(php.ini)session.gc_maxlifetime里面设置
  • 回收概率默认为满1000时回收一次,可以在(php.ini)session.gc_divisor里面设置
  • 只有当回收周期和回收概率度满足时开会进行垃圾回收

###6、SESSION文件的临时文件

string session_save_path(string path)

可以将文件转移到零食文件里面或者数据库里面,如果一直放在临时目录里面对效率有很大影响

#SEESION对应COOKIE的配置(php.ini)

##一、SEESION对应COOKIE过期时间设置

修改php.ini配置项:session.cookie_lifetime

注意:在配置文件中不能写算术式,也不用写time()+N

##二、SESSION对应COOKIE有效路劲设置##

修改php.ini配置项:session.cookie_path

默认为网战根目录下所有目录

##三、SESSION对应COOKIE域名有效性设置##

修改php.ini配置项:session.cookie_domain

默认时当前域名下使用

##四、是否仅限https来发送SESSION对应的COOKIE数据

修改php.ini配置项:session.cookie_secure

##五、是否仅限http来使用SESSION对应的COOKIE数据

修改php.ini配置项:session.cookie_httponly