php中会话控制包括什么,PHP会话控制中session的使用

PHP会话控制中session的使用

简单介绍

基本功能:

通过为每个独立用户分配唯一的会话 ID,可以实现针对不同用户分别存储数据的功能。 会话通常被用来在多个页面请求之间保存及共享信息。一般来说,会话 ID 通过 cookie 的方式发送到浏览器,并且在服务器端也是通过会话 ID 来取回会话中的数据。 如果请求中不包含会话ID 信息,那么 PHP 就会创建一个新的会话,并为新创建的会话分配新的 ID。【摘自官方文档】

简单来说其作用类似于cookies但是相比较cookies更加安全。cookies保存在用户的浏览器上,用户可以非常方便的更改,然而session保存在服务器,用户只会拿到一个ID(session_id)号因此用户不能直接修改session中保存的信息。

工作流程

当开始一个会话时,PHP 会尝试从请求中查找会话 ID (通常通过会话 cookie), 如果请求中不包含会话 ID 信息,PHP 就会创建一个新的会话。 会话开始之后,PHP 就会将会话中的数据设置到 $_SESSION 变量中。 当 PHP 停止的时候,它会自动读取 $_SESSION 中的内容,并将其进行序列化, 然后发送给会话保存管理器来进行保存。PHP 脚本执行完毕之后,会话会自动关闭。 同时,也可以通过调用函数 session_write_close() 来手动关闭会话。 【摘自官方文档】

①接受用户请求,并查询ID(session_id)。

②如果ID(session_id)存在,则开始会话;如果不存在则创建一个新会话,之后开启会话

③PHP从会话中获取相关数据经过反序列化后保存到$_SESSION中。

④PHP结束前将$_SESSION经序列化后提交给管理器。

⑤结束会话。

常见配置

session.save_handler :修改默认会话保存机制(默认状态是以文件形式保存到某个路径下,可以修改session_set_save_handler来把session保存到数据库)

session.save_path:session文件的保存位置。如图:

session.auto_start :会话自动开启,默认是0表示不开启,修改为1表示开启。PHP代码中可以调用session.start()手动开启。

session.name:session的名字,默认PHPSESSID

session.gc_maxlifetime:session的最长有效期,以ms为单位。如果超过这个时间sessio将自动删除。默认是1440(24分钟)

serialize_handler:默认PHP,处理连续资料的方式,本功能只有WDDX模组或PHP内部使用【说人话就是用WDDX还是PHP格式来序列化得出session存储的字符串】注意如果这里的序列化方式是PHP那么就可能会出现反序列化漏洞因为php中serialize()的方式和其不同。详情请见=【链接】

session.gc_probability = n:以千分之n的概率回收(删除)session

其他:Session 上传进度

当一个上传在处理中,同时POST一个与INI中设置的session.upload_progress.name同名变量时,上传进度可以在$_SESSION中获得。

当 session.upload_progress.enabled INI 选项开启时,PHP 能够在每一个文件上传时监测上传进度。

这个信息对上传请求自身并没有什么帮助,但在文件上传时应用可以发送一个POST请求到终端(例如通过XHR)来检查这个状态

当一个上传在处理中,同时POST一个与INI中设置的session.upload_progress.name同名变量时,上传进度可以在$_SESSION中获得。

当PHP检测到这种POST请求时,它会在$_SESSION中添加一组数据, 索引是

session.upload_progress.prefix与session.upload_progress.name连接在一起的值key。

通常这些键值可以通过读取INI设置来获得

【PS:$SESSION获得的是key与文件名连接而成的字符串】

利用session实现登陆后在页面之间的切换

一共设置了五个页面

login.html

PHP会话控制中session的使用 相关文章

递归-N皇后问题

1.PHP实现 1 //N皇后 2 //N皇后问题是指在N*N的棋盘上要摆N个皇后,要求 3 //任何两个皇后不同行、不同列,也不在同一条直线上 4 //给定一个证数n,返回n皇后的摆法有多少种 5 6 function nQueen($n,$row=0,$queen=[]){ 7 // 8 if($row == $n){ 9 return 1;1

周博磊老师强化学习纲领笔记第二课:无模型的价值函数估计和控制

第三课:Model-free prediction和Model-free control 什么是MDP已知 : 马尔可夫决策过程中它的奖励 \(R\) 以及状态转移概率矩阵 \(P\) 都是暴露给agent的,就是环境是提前提供给你的,你是已知的。 所以我们能够用策略迭代的方法policy iteration和值迭代的

Vue 浏览器控制台:No Access-Control-Allow-Origin header is present on the requested resource.

Vue 浏览器控制台:No 'Access-Control-Allow-Origin' header is present on the requested resource. 问题背景 写一个前后端分离的 demo 前端页面访问后端数据是浏览器控制台出现如下问题: 解决方案 在后端新建 config 包,新建 CrosConfig.java 类,添加

(原创)C#初级教程学习笔记007-流程控制01

微信公众号已开通,请搜索微信公众号:程序喵星人。点击关注^_^ 1.关系运算符 2.逻辑运算符 3.位运算符 4.goto语句 goto 语句将执行转移到语句块中的另一个标签。 Program.cs using System;using System.Collections.Generic;using System.Linq;using System

php如何控制循环执行的时间

我们在循环执行某个程序时,可能会出现超时导致程序死掉的情况。所以我们有必要限制每个循环执行的最长时间,以此来避免程序死掉的情况。 如果超时,则直接断开改进程,并继续下一层循环操作。携程,多线程都可以完成该操作,但在没有了解这些高深技术的时候

php如何解决跨域问题

什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。 所谓同源是指,域名,协议,端口均相同。 1、允许所有域名访问 header(Access-Control-Allow-Origin: *); 2、允许单个域名访问 header(Acc

PHP7中十个需要避免的坑

推荐(免费):PHP7 1、不要使用 mysql_ 函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数。PHP 7已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的PDO实现。 2、不要编写垃圾代码 这一条可能易于理解,但是

php中的六种密码加密方式分别是什么

六种密码加密方式如下: 1、MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串。 raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 这是一种不可逆加密

[Dart语法]第五章:控制流程语句

控制流程语句 if-else语句 //标准语句bool isWrong = true;bool isTesting = false;if (isWrong) { print('错误提示');} else if (isTesting) { print('正在测试');} else { print('其他');}//简写bool isWrong = true;if (isWrong) print('错误'); for循环

spring(4)

一、spring中的事务控制 1. Spring 事务控制我们要明确的 第一:JavaEE 体系进行分层开发,事务处理位于业务层,Spring 提供了分层设计 业务层的事务处理解决方案。 第二:spring 框架为我们提供了一组事务控制的接口。具体在后面的第二小节介绍。这组接口是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值