24 Session

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 路老师在知乎上分享了PHP语言的知识,帮助大家入门并深入了解PHP。本文重点讲解了Session管理,包括Session的基本概念、工作原理、功能、创建会话、存储和读取会话数据,以及删除会话的方法。通过这些内容,读者可以更好地理解和应用Session技术。

有胆量你就来跟着路老师卷起来 -- 纯干货,技术知识分享

路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。

image.gif 编辑

上一篇我们完成了cookie的7天免登录功能的实现,本文接着说‘Cookie与Session’这块的Session管理部分。

Session 管理

对比Cookie和Session会话文件中保存的数据是以变量的形式创建的,创建的会话变量在生命周期(24分钟)中可以被跨页的请求所引用。另外,Session是存储在服务器端的会话,比起Cookie安全,并且也不会像Cookie那样有存储长度的限制。

1 了解Session

Session译为会话。其本义是指有始有终的一系列动作或消息,如打电话时拿起手机拨号到挂断电话的一系列过程成为一个Session。官方描述:Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统所经过的时间。因此,Session实际上是一个特定的时间概念。

1.1 Session工作原理

当启动一个Session会话时,会生成一个随机且唯一的session_id,也就是Session的文件名,此时session_id存储在服务器的内存中,当关闭页面时,此id会被自动注销,重新登陆此页面,会再次生一个随机的唯一的id。

1.2 Session的功能

Session在web技术中非常重要。由于网页是一种给无状态的连接程序,因此无法得知用户的浏览器状态。通过Session则可记录用户有关的信息,以供用户再次以此身份对Web服务器提交要求时做确认。例如:在浏览购物网站中,通过Session记录用户登录的信息,以及用户所购买的商品,如果没有Session,那么用户每进入一个页面都需要登录以此用户名和密码。

另外,Session会话适用于存储信息量比较少的情况。如果用户需要存储的信息量相对较少,且不需要长期存储,那么使用Session把信息存储到服务器端比较合适。

2 创建会话

创建会话流程如下:

image.gif 编辑

2.1 启动会话

php启动会话采用session_start()方法

bool session_start(void);

image.gif

注意:通常session_start()函数在页面开始位置调用,会话变量被存储到$_SESSION中。

2.2 存储会话

$_SESSION变量是一个数组,开启绘画之后,就可以使用$_SESSION变量来存取信息了。当要把信息存入Session的时候,编码如下:

$_SESSION('username') = '路飞';

image.gif

判断存储的用户名的Session会话变量是否为空,如果不为空,则将该会话变量赋给$myS变量:

<?php
$_SESSION['username'] = '路飞';
if(!empty($_SESSION['username'])){
  $myS = $_SESSION['username'];
  echo '$myS值为:'.$myS;
}
?>

image.gif

image.gif 编辑

2.3 读取会话

读取会话很简单,就像使用数组一样:

$username = $_SESSION['username'];

image.gif

2.4 删除会话

删除会话的方法主要有删除单个会话、删除对个会话和结束当前会话3种,下面分别进行介绍。

2.4.1 删除单个会话

删除会话变量,同数组的操作一样,直接注销$_SESSION数组的某个元素即可。

unset($_SESSION['username']);

image.gif

注意:使用unset()函数时,该函数会将全局变量$_SESSION销毁,而且没有办法将其恢复,用户也不能再注册$_SESSION变量。如果要删除多个或者全部会话,可采用下面的两种方法。

2.4.2 删除多个会话

如果想以此注销所有的会话变量,则可以将一个空的数组赋给$_SESSION,代码如下:

$_SESSION = array();

image.gif

2.4.3 结束当前会话

如果整个会话已经结束,首先应该注销所有的会话变量,然后使用session_destroy()函数清除结束当前的会话,并清空会话种的所有资源,彻底销毁Session,代码如下:

session_destroy();

image.gif

这些就是关于session的概念性的内容。

下一篇 使用Session实现判断用户登录功能

相关文章
|
29天前
|
存储 Linux API
不需要技术,OpenClaw阿里云/本地部署+免费API配置+集成长期记忆Skill及避坑指南
OpenClaw的强大之处,在于其灵活的技能生态与高效的大模型决策能力,但原生记忆系统却成了“拖后腿”的短板——默认基于文件记录所有操作,无差别保存冗余信息,不仅消耗大量token增加成本,还存在记忆无重点、跨会话丢失等问题。对于需要长期运行的个人智能体而言,一个精准、高效、可跨场景复用的记忆层至关重要。
1218 3
|
1月前
|
存储 人工智能 API
OpenClaw(Clawdbot)阿里云/ Ollama 本地部署保姆级教程,多AI Agent 记忆崩溃解决方案指南
在深度调教OpenClaw(原Clawdbot)多Agent专家团时,很多用户都会遇到一个共性难题:随着交互次数增加,Agent的上下文记忆持续暴涨,最终触发“openai embeddings failed: 401”这类报错,核心原因是默认的外部向量API调用超限或密钥失效。2026年,OpenClaw已原生支持本地向量模型集成,通过Ollama或内置引擎加载轻量向量模型,就能将记忆从“全文存储”升级为“按需向量检索”,彻底解决记忆崩溃问题。
2236 1
|
8月前
|
微服务
微服务CAP原理 BASE理论
CAP定理指出,分布式系统无法同时满足一致性(C)、可用性(A)和分区容错性(P),只能在CP与AP之间权衡。BASE理论作为其补充,通过基本可用、软状态、最终一致性实现柔性事务,解决分布式一致性难题。AP模式允许临时不一致,最终通过补偿机制达成一致;CP模式则保证强一致性,但牺牲部分可用性。
376 0
|
8月前
|
存储 弹性计算 运维
阿里云服务器快照是什么?快照详细介绍
阿里云ECS快照服务是对云盘数据在某一时刻的完整备份,支持定时自动备份,防范数据丢失风险。快照按存储空间收费,可用OSS存储包抵扣。适用于日常备份、高危操作恢复、快速数据恢复、业务批量部署等场景,保障业务连续性与数据安全。
|
C语言 索引
C语言编译环境中的 调试功能及常见错误提示
这篇文章介绍了C语言编译环境中的调试功能,包括快捷键操作、块操作、查找替换等,并详细分析了编译中常见的错误类型及其解决方法,同时提供了常见错误信息的索引供参考。
|
机器学习/深度学习 搜索推荐 算法
深度学习推荐模型-DIN
Deep Interest Network(DIN)是盖坤大神领导的阿里妈妈的精准定向检索及基础算法团队,在2017年6月提出的。 它针对电子商务领域(e-commerce industry)的CTR预估,重点在于充分利用/挖掘用户历史行为数据中的信息。
1502 1
深度学习推荐模型-DIN
|
缓存 分布式计算 API
go-zero 微服务实战系列(一、开篇)
go-zero 微服务实战系列(一、开篇)
|
SQL 缓存 关系型数据库
技术好文:sqlx使用指南
技术好文:sqlx使用指南
562 0
|
存储 SQL 关系型数据库
MySQL索引下推:原理与实践
MySQL索引下推:原理与实践
|
存储 人工智能 数据库
【AI大模型应用开发】以LangChain为例:从短期记忆实战,到如何让AI应用保持长期记忆的探索
【AI大模型应用开发】以LangChain为例:从短期记忆实战,到如何让AI应用保持长期记忆的探索
2406 0