当前位置: 首页 > news >正文

PHP(14)会话技术

PHP(14)会话技术

  • 一、概念
  • 二、分类
  • 三、cookie技术
    • 1. cookie的基本使用
    • 2. cookie的生命周期
    • 3. cookie的作用范围
    • 4. cookie的跨子域
    • 5. cookie的数组数据
  • 四、session
    • 1. session原理
    • 2. session基本使用
    • 3. session配置
    • 4. 销毁session

一、概念

HTTP协议是一种无状态、无连接的协议,无法判断多个请求是否来自同一个用户。会话技术就是让HTTP协议识别来自同一个用户的多个请求。

二、分类

  1. cookie:是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。本质是由Web服务器保存在客户端上的小文本文件,可以包含有关用户的信息。
  2. session:session技术是将数据保存在服务器端,session技术的实现依赖于cookie技术。
  3. 区别
区别cookiesession
安全性存储在浏览器端,安全性低存储在服务器,安全性高
数据大小数量和大小都有限制(4KB)数据存储不限
可用数据类型只能存储简单数据,数值、字符串可以存储复杂数据

三、cookie技术

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

1. cookie的基本使用

  • 设置cookie信息:setcookie(名字, 值)
    • 名字必须是字符串。
    • 值必须是简单类中的整数或字符串。
    setcookie('age', 1);
    
  • 读取cookie信息:$_COOKIE
    var_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有关。
    1. PHP碰到session_start()时开启session会话,会自动检测sessionID
      • 如果cookie中存在,则使用现成的。
      • 如果cookie中不存在,会创建一个sessionID,并通过响应头以cookie形式保存到浏览器中。
    2. 初始化超全局变量$_SESSION为一个空数组
    3. PHP通过sessionID去指定存放session文件的位置匹配对应的文件
      • 不存在该文件,则创建一个sessionID命名文件
      • 存在该文件,读取文件内容,将数据存储到$_SESSION中
    4. 脚本执行结束,将$_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配置

  • 配置方式
    1. 在php.ini中配置,全局生效
    2. 脚本中配置,PHP可以通过ini_set()函数来设置项目配置
  • 基础配置
    1. session.name:session名字,保存到cookie中sessionID对应的名字
    2. session.auto_start:自动开启session,默认关闭
    3. session.save_handler:session数据的保存方式,默认是文件形式
    4. session.save_path:session文件默认存储位置
  • 常用配置
    1. session.cookie_lifetime:PHPsessionID在浏览器端对应cookie的生命周期,默认是会话结束
    2. session.cookie_path:sessionID在浏览器存储之后允许服务器访问的路径(cookie作用范围)
    3. session.cookie_domain:cookie允许访问的子域
  • 垃圾回收配置
    1. session.gc_maxlifetime:规定session文件的最大生命周期,默认24分钟。
    2. session.gc_probability:垃圾回收概率因子,默认为1
    3. session.gc_divisor:垃圾回收概率分母,默认为1000
      • 触发几率默认是 1/1000

4. 销毁session

  • $_SESSION = array(); 只会删除数据。销毁session会删除session对应的文件。
  • 通过session_destroy()函数来销毁session。

相关文章:

PHP(14)会话技术

PHP&#xff08;14&#xff09;会话技术一、概念二、分类三、cookie技术1. cookie的基本使用2. cookie的生命周期3. cookie的作用范围4. cookie的跨子域5. cookie的数组数据四、session1. session原理2. session基本使用3. session配置4. 销毁session一、概念 HTTP协议是一种无…...

对JAVA 中“指针“理解

对于Java中的指针&#xff0c;以下典型案例会让你对指针的理解更加深刻。 首先对于&#xff1a; 系统自动分配对应空间储存数字 1&#xff0c;这个空间被变量名称b所指向即: b ——> 1 变量名称 空间 明…...

功率放大器在MEMS微结构模态测试研究中的应用

实验名称&#xff1a;功率放大器在MEMS微结构模态测试研究中的应用研究方向&#xff1a;元器件测试测试目的&#xff1a;随着MEMS器件在各个领域中广泛应用&#xff0c;对微结构进行模态测试获得其动态特性参数对微结构的设计、仿真、制造、以及质量控制和评价等方面具有十分重…...

【算法基础】字典树(Trie树)

一、Trie树原理介绍 1. 基本概念 Trie 树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。【高效存储和查找字符串集合的数据结构】,存储形式如下: 2. 用数组来模拟Trie树的…...

MyBatis 插件 + 注解轻松实现数据脱敏

问题在项目中需要对用户敏感数据进行脱敏处理&#xff0c;例如身份号、手机号等信息进行加密再入库。解决思路就是&#xff1a;一种最简单直接的方式&#xff0c;在所有涉及数据敏感的查询到对插入时进行密码加解密方法二&#xff1a;有方法一到出现对所有重大问题的影响&#…...

MySQL优化篇-MySQL压力测试

备注:测试数据库版本为MySQL 8.0 MySQL压力测试概述 为什么压力测试很重要&#xff1f;因为压力测试是唯一方便有效的、可以学习系统在给定的工作负载下会发生什么的方法。压力测试可以观察系统在不同压力下的行为&#xff0c;评估系统的容量&#xff0c;掌握哪些是重要的变化…...

CF43A Football 题解

CF43A Football 题解题目链接字面描述题面翻译题面描述题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样例输入 #2样例输出 #2代码实现题目 链接 https://www.luogu.com.cn/problem/CF43A 字面描述 题面翻译 题面描述 两只足球队比赛&#xff0c;现给你进…...

Nginx常用命令及具体应用(Linux系统)

目录 一、常用命令 1、查看Nginx版本命令&#xff0c;在sbin目录下 2、检查配置文件的正确性 3、启动和停止Nginx 4、查看日志&#xff0c;在logs目录下输入指令&#xff1a; 5、重新加载配置文件 二、Nginx配置文件结构 三、Nginx具体应用 1、部署静态资源 2、反向代…...

从零实现Web服务器(三):日志优化,压力测试,实战接收HTTP请求,实战响应HTTP请求

文章目录一、日志系统的运行流程1.1 异步日志和同步日志的不同点1.2 缓冲区的实现二、基于Webbench的压力测试三、HTTP请求报文解析http报文处理流程epoll相关代码服务器接收http请求四、HTTP请求报文响应一、日志系统的运行流程 步骤: 单例模式&#xff08;局部静态变量懒汉…...

MFC入门

1.什么是MFC?全称是Microsoft Foundation Class Library&#xff0c;我们称微软基础类库。它封装了windows应用程序的各种API以及相关机制的C类库MFC是一个大的类库MFC是一个应用程序框架MFC类库常用的头文件afx.h-----将各种MFC头文件包含在内afxwin.h-------包含了各种MFC窗…...

1、H5+CSS面试题

1, HTML5中新增了哪些内容&#xff1f;广义上的html5指的是最新一代前端开发技术的总称&#xff0c;包括html5&#xff0c;CSS3&#xff0c;新增的webAPI。Html中新增了header,footer,main,nav等语义化标签&#xff0c;新增了video,audio媒体标签&#xff0c;新增了canvas画布。…...

亚马逊云科技重磅发布《亚马逊云科技汽车行业解决方案》

当今&#xff0c;随着万物智联、云计算等领域的高速发展&#xff0c;创新智能网联汽车和车路协同技术正在成为车企加速发展的关键途径&#xff0c;推动着汽车产品从出行代步工具向着“超级智能移动终端”快速转变。挑战无处不在&#xff0c;如何抢先预判&#xff1f;随着近年来…...

Springboot扩展点之FactoryBean

前言FactoryBean是一个有意思&#xff0c;且非常重要的扩展点&#xff0c;之所以说是有意思&#xff0c;是因为它老是被拿来与另一个名字比较类似的BeanFactory来比较&#xff0c;特别是在面试当中&#xff0c;动不动就问你&#xff1a;你了解Beanfactory和FactoryBean的区别吗…...

新库上线 | CnOpenDataA股上市公司交易所监管措施数据

A股上市公司交易所监管措施数据 一、数据简介 证券市场监管是指证券管理机关运用法律的、经济的以及必要的行政手段&#xff0c;对证券的募集、发行、交易等行为以及证券投资中介机构的行为进行监督与管理。 我国《证券交易所管理办法》第十二条规定&#xff0c;证券交易所应当…...

同步辐射XAFS表征方法的应用场景分析

X射线吸收精细结构XAFS表征方法是一种用于研究物质结构和化学环境的分析技术。XAFS 使用 X 射线照射到物质表面&#xff0c;并观察由此产生的 X 光吸收谱。 ​XAFS 技术通常应用于研究高分子物质、生物分子、纳米结构和其他类型的物质。例如&#xff0c;XAFS 可以用来研究高分子…...

06 antdesign react Anchor 不同页面之间实现锚点

react Anchor 不同页面之间实现锚点一、定义二、使用步骤三、开发流程(一)、组件(二)、页面布局(三)、点击事件(四)、总结说明一、react单页面应用&#xff0c;当前页面的锚点二、react单页面应用&#xff0c;不同页面的锚点思路&#xff1a;锚点只能在当前页面使用&#xff0c…...

mysql调优-内存缓冲池

因本地查询和服务器查询相比服务器慢了很多&#xff0c;同样的数据&#xff0c;同样的sql查询&#xff0c;考虑了是不是链接太多了&#xff0c;自行查询了下&#xff0c;我使用的c3p0的链接池&#xff0c;配置一个小时超时&#xff0c;正常情况下是20多个链接&#xff0c;而mys…...

【LeetCode】每日一题(5)

目录 题目&#xff1a;2341. 数组能形成多少数对 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;2341. 数组能形成多少数对 -…...

输入任意多个整数, 把这些数据保存到文件data.txt中.(按ctrl + z)

#pragma once #include <iostream> #include <fstream> using namespace std; /* 输入任意多个整数, 把这些数据保存到文件data.txt中. 如果在输入的过程中, 输入错误, 则提示用户重新输入. 指导用户输入结束(按ctrl z) [每行最多保存10个整数] */ int main() { …...

Mysql数据库的时间(3)一如何用函数插入时间

暂时用下面四个日期函数插入时间 如:insert into Stu(time) values (now()); Mysql的时间函数描述对应的Mysql的时间类型now()/sysdate()NOW()函数以YYYY-MM-DD HH:MM:SS返回当前的日期时间date/time/dateTime/timeStamp/yearcurDate()/current_date()返回当前的日期YYYY-M…...

关于eval函数(将JSON格式的字符串转换成JSON格式对象)

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>关于eval函数</title> </head> <body> <!--JSON是一种行业内的数据交换格式标准。在JS当中以对象的形式存在…...

2023最强软件测试面试题,精选100 道,内附答案版,冲刺金3银4

精挑细选&#xff0c;整理了100道软件测试面试题&#xff0c;都是非常常见的面试题&#xff0c;篇幅较长&#xff0c;所以只放出了题目&#xff0c;答案在评论区&#xff01; 测试技术面试题 1、什么是兼容性测试&#xff1f;兼容性测试侧重哪些方面&#xff1f; 2、我现在有…...

一文搞懂Docker容器里进程的 pid 是如何申请出来的?

如果大家有过在容器中执行 ps 命令的经验&#xff0c;都会知道在容器中的进程的 pid 一般是比较小的。例如下面我的这个例子。 # ps -ef PID USER TIME COMMAND1 root 0:00 ./demo-ie13 root 0:00 /bin/bash21 root 0:00 ps -ef 不知道大家是否和我一样…...

若依框架如何新增自定义主题风格

若依框架新增主题风格1.实现结果2.实现步骤2.1Settings目录下2.2 variables.scss2.3 sidebar.scss2.4 Logo.vue2.5 Siderbar目录下的index.vue1.实现结果 2.实现步骤 需要改动的文件目录&#xff1a; 2.1Settings目录下 <div class"setting-drawer-block-checbox-it…...

C语言格式化输入和输出; Format格式化

Format格式化 %1s或者%2s,%3s:取字符串的前1,2或者3位。%*c:屏蔽一个字符。%[A-Z]:取一个A到Z的值。 %[^a-z]:不取a到z的值。 %[^\n]&#xff1a;取非换行之前的值。printf("%5d", a):左边补 格式化&#xff1a;有正则在其中。 int main() {printf("%5d\n&quo…...

Revit教程:怎么关掉工具栏的实时提示?

一、Revit中如何关闭工具栏的实时帮助提示 如图1所示&#xff0c;Revit会对每一个命令有一个简单的图文说明&#xff0c;方便不熟悉软件的用户使用。对于已经熟悉软件的用户&#xff0c;会觉得鼠标在菜单上悬停时弹出的实时帮助页面很干扰使用&#xff0c;而且很占内存资源&…...

javascript 简介

JavaScript 是互联网上最流行的脚本语言&#xff0c;这门语言可用于 HTML 和 web&#xff0c;更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。JavaScript 是脚本语言JavaScript 是一种轻量级的编程语言。JavaScript 是可插入 HTML 页面的编程代码。JavaScript…...

医学图象分割常用损失函数(附Pytorch和Keras代码)

对损失函数没有太大的了解&#xff0c;就是知道它很重要&#xff0c;搜集了一些常用的医学图象分割损失函数&#xff0c;学习一下&#xff01; 医学图象分割常见损失函数前言1 Dice Loss2 BCE-Dice Loss3 Jaccard/Intersection over Union (IoU) Loss4 Focal Loss5 Tvesky Loss…...

【新2023】华为OD机试 - 病菌感染(Python)

华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 病菌感染 题目 在一个地图中(地图有N*N个区域组成) 有部分区域被感染病菌 感染区域每天都会把周围上下左右的四个区域感染 请根据给定的地图计算多少天以后全部区域都会被感染 如果初始地图上所有区域都…...

QGIS中进行批量坡向计算

QGIS中进行坡向计算1. 坡向计算中的Z因子&#xff08;垂直单位与水平单位的比值&#xff09;2. 坡向计算步骤坡度计算的姊妹篇–坡向计算来了 1. 坡向计算中的Z因子&#xff08;垂直单位与水平单位的比值&#xff09; z 因子是一个转换因子&#xff0c;当输入表面的垂直坐标&…...

莆田网站建设开发/seo收费还是免费

这个问题很Easy,表面上看着有点难度,实际上经过仔细的思考后,确实很Easy,下面我就来介绍下Asp用邮箱激活用户的简要思路并附实例。 简要思路&#xff1a;主要是在用户注册时利用Jmail技术给用户发一封邮件,邮件内容附上验证连接并附上用户注册的ID,例如:http://www.noonenet.cn…...

企业网站的首页设计模板/重庆百度seo代理

python 中国剩余定理 chinese-remainder-theorem1.题目2.编程思路及代码3.其他参考文献1.题目 描述 给出两个数组 num[0..k - 1] 和 rem[0..k - 1]. 在数组num[0..k - 1]中, 所有的元素都是互质的( gcd 为 1 ). 我们需要找到满足下列条件的最小正数 x:x % num[0] rem[0…...

wordpress视频无法播放视频教程/北京外包seo公司

一、Kafka名词解释和工作方式1.1:Producer &#xff1a;消息生产者&#xff0c;就是向kafka broker发消息的客户端。1.2:Consumer &#xff1a;消息消费者&#xff0c;向kafka broker取消息的客户端1.3:Topic &#xff1a;可以理解为一个队列。1.4:Consumer Group &#xff08;…...

去三亚要下载什么app?/百度关键词自然排名优化公司

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2021年安全员-C证-专职安全生产管理人员&#xff08;广东省&#xff09;考试试卷为正在备考安全员-C证-专职安全生产管理人员&#xff08;广东省&#xff09;操作证的学员准备的理论考试专题&#xff0c;每个月更新的…...

适合中考做的微机题网站/福州网站开发公司

Memcached Memcached 是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数&#xff0c;从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程&#xf…...

网站建设需求原型/hao123影视

文章来源&#xff1a;Python小例子告别枯燥&#xff0c;通过学习有趣的小例子&#xff0c;扎实而系统的入门Python&#xff0c;从菜鸟到大师&#xff0c;个人觉得这是很靠谱的一种方法。通过一个又一个的小例子&#xff0c;真正领悟Python之强大&#xff0c;之简洁&#xff0c;…...