网站建设与运营考试,图书租借网站 开发,研创网,咸阳网站建设方案PHP#xff08;14#xff09;会话技术一、概念二、分类三、cookie技术1. cookie的基本使用2. cookie的生命周期3. cookie的作用范围4. cookie的跨子域5. cookie的数组数据四、session1. session原理2. session基本使用3. session配置4. 销毁session一、概念
HTTP协议是一种无…
PHP14会话技术一、概念二、分类三、cookie技术1. cookie的基本使用2. cookie的生命周期3. cookie的作用范围4. cookie的跨子域5. cookie的数组数据四、session1. session原理2. session基本使用3. session配置4. 销毁session一、概念
HTTP协议是一种无状态、无连接的协议无法判断多个请求是否来自同一个用户。会话技术就是让HTTP协议识别来自同一个用户的多个请求。
二、分类
cookie是在HTTP协议下服务器或脚本可以维护客户工作站上信息的一种方式。本质是由Web服务器保存在客户端上的小文本文件可以包含有关用户的信息。sessionsession技术是将数据保存在服务器端session技术的实现依赖于cookie技术。区别
区别cookiesession安全性存储在浏览器端安全性低存储在服务器安全性高数据大小数量和大小都有限制4KB数据存储不限可用数据类型只能存储简单数据数值、字符串可以存储复杂数据
三、cookie技术
setcookie(名字, 值, 生命周期, 作用范围, 域名);
1. cookie的基本使用
设置cookie信息setcookie(名字, 值) 名字必须是字符串。值必须是简单类中的整数或字符串。 setcookie(age, 1);读取cookie信息$_COOKIEvar_dump($_COOKIE);2. cookie的生命周期
默认关闭浏览器则生命周期结束。通过setcookie可以限定生命周期必须加 time()setcookie(a1, a1, time() 7 * 24 * 60 * 60);手动结束生命周期setcookie(age, );、setcookie(a1, a1, time());
3. cookie的作用范围
默认范围上层文件夹中设定的cookie可以在下层中访问而下层的cookie不能在上层访问。把cookie的作用范围设置为网站根目录setcookie(a1, a1, 0, /);
4. cookie的跨子域
默认不允许跨域访问cookie。设置cookie跨子域setcookie(a1, a1, 0, /, mysite.com);
5. cookie的数组数据
cookie只能设置成简单数据类型。把cookie伪装成数组
setcookie(goods_id[0], 1);
setcookie(goods_id[1], 2);
setcookie(goods_id[2], 3);
setcookie(goods_id[3], 4);获取cookie数组$_COOKIE[goods_id][2]
四、session
1. session原理
session与浏览器无关但与cookie有关。 PHP碰到session_start()时开启session会话会自动检测sessionID 如果cookie中存在则使用现成的。如果cookie中不存在会创建一个sessionID并通过响应头以cookie形式保存到浏览器中。 初始化超全局变量$_SESSION为一个空数组PHP通过sessionID去指定存放session文件的位置匹配对应的文件 不存在该文件则创建一个sessionID命名文件存在该文件读取文件内容将数据存储到$_SESSION中 脚本执行结束将$_SESSION中保存的所有数据序列化存储到sessionID对应的文件中。
2. session基本使用
$_SESSION是通过session_start()函数的调用才会定义的不会直接定义。设置session和读取session
?php
// 开启session
session_start();
// 设置session
$_SESSION[name] Mark;
$_SESSION[hobby]array(sing, dump);
// 读取session
var_dump($_SESSION);删除一个session unset($_SESSION[name]);删除所有session $_SESSION array();
3. session配置
配置方式 在php.ini中配置全局生效脚本中配置PHP可以通过ini_set()函数来设置项目配置 基础配置 session.namesession名字保存到cookie中sessionID对应的名字session.auto_start自动开启session默认关闭session.save_handlersession数据的保存方式默认是文件形式session.save_pathsession文件默认存储位置 常用配置 session.cookie_lifetimePHPsessionID在浏览器端对应cookie的生命周期默认是会话结束session.cookie_pathsessionID在浏览器存储之后允许服务器访问的路径cookie作用范围session.cookie_domaincookie允许访问的子域 垃圾回收配置 session.gc_maxlifetime规定session文件的最大生命周期默认24分钟。session.gc_probability垃圾回收概率因子默认为1session.gc_divisor垃圾回收概率分母默认为1000 触发几率默认是 1/1000
4. 销毁session
$_SESSION array(); 只会删除数据。销毁session会删除session对应的文件。通过session_destroy()函数来销毁session。