php中session相关知识(目前了解部分)

#记录学习知识 

一.ini_set() 

在PHP中,ini_set() 函数用于在脚本运行时设置指定的配置选项的值。这些配置选项可以是PHP的核心设置,例如文件上传的最大大小、脚本的最大执行时间、错误报告级别等。使用 ini_set() 可以临时改变PHP.ini文件中的设置,但这些改变仅在脚本运行期间有效,不会永久更改PHP.ini文件。

函数的基本语法如下:

ini_set(string $varname, string $newvalue): string

  • $varname:需要设置的配置选项名称(即在PHP.ini中的选项名称)。
  • $newvalue:为该配置选项设置的新值。

返回值是旧的配置选项值,如果操作成功。如果操作失败,通常返回一个空字符串。

以下是一些 ini_set() 函数的使用示例:

// 设置脚本最大执行时间为120秒 ini_set('max_execution_time', '120');

// 设置时区 ini_set('date.timezone', 'Asia/Shanghai');

// 设置错误报告级别,只报告运行时错误 ini_set('error_reporting', E_ERROR);

// 设置POST最大数据量为8M ini_set('post_max_size', '8M');

// 设置脚本内存限制为128MB ini_set('memory_limit', '128M');

需要注意的是,并非所有的PHP配置选项都可以使用 ini_set() 函数进行设置。有些选项是“PHP_INI_SYSTEM”类别的,它们只能在PHP.ini文件或服务器配置文件(例如httpd.conf或.htaccess文件)中设置。

此外,ini_set() 在不同的服务器环境中可能表现不同,一些服务器配置可能禁用了对某些设置的更改,或者只能在PHP.ini或.htaccess中更改这些设置。因此,在使用 ini_set() 时,建议查看PHP官方文档以确认哪些选项是可以在运行时更改的。

二.session和session.serialize_handler

在PHP中,$_SESSION是一个特殊的预定义数组,用于存储跨多个页面(即在整个用户会话中)持久化的数据。与其他类型的数据不同,会话数据在页面加载时不会丢失,而会在服务器上保存到用户会话结束(即用户关闭浏览器或者经过一定时间未活动)。

session_start()是一个函数,用来开启一个新的会话或继续已经存在的会话。如果一个会话已经存在(例如,同一个用户在另一个页面已经开启了会话),这个函数将会使用现有的会话。如果会话不存在,这个函数将会创建新的会话。要使用$_SESSION数组存储数据,首先必须调用 session_start() 函数。

// 开启会话 session_start();

// 储存数据到$_SESSION变量 $_SESSION["username"] = "JohnDoe";

session.serialize_handler 是PHP的会话配置选项,定义了会话数据序列化的方法。当PHP存储或检索会话数据时,需要进行序列化或反序列化操作。序列化是将复杂的数据结构(如数组或对象)转化为可以存储或传输的简单字符串;反序列化就是将这种字符串转回原来的数据结构。

session.serialize_handler 可以设置为以下几种值:

  • php:PHP序列化处理。这是默认值,适合大部分应用。
  • php_binary:更紧凑的二进制格式,但并不所有PHP值都支持。
  • php_serialize:使用 serialize() 和 unserialize() 函数处理。比 php 选项更安全,支持更多的数据类型,但不是所有系统都支持。
  • wddx:使用 WDDX (Web Distributed Data Exchange) 格式。

也可以通过扩展定义自定义的序列化处理器。不过,对大多数应用来说,通常使用默认的 php 选项就足够了。

三.session_start()

在PHP中,会话(Session)是一种在服务器上存储用户数据以便跨多个页面请求或访问期间使用的机制。它是一个全局性质的存储方式,允许你为每个访问者创建一个独特的会话,并且这个会话可以保持一定时间的持久化状态。

session_start() 的作用

session_start() 函数的作用是启动新的会话或者继续已有的会话。当你调用 session_start() 函数时,PHP将执行以下操作:

  1. 检查是否已经存在一个会话ID,如果存在,它将使用这个ID继续旧的会话;如果不存在,它将创建一个新的会话ID。
  2. 将会话ID发送到用户浏览器,通常是通过一个名为 PHPSESSID 的cookie。
  3. 根据会话ID,加载会话数据并将其填充到全局数组 $_SESSION 里,使得你可以在脚本中访问这些会话数据。

session_start() 必须在脚本输出任何内容到浏览器之前被调用,因为它需要发送头信息。

$_SESSION 数组的作用

$_SESSION 是一个超全局变量,它是一个关联数组,包含了会话变量的名字和值。这些会话变量在会话开始时通过 session_start() 函数填充,然后可以在整个会话期间使用。

session_start(); // 开启会话

// 设置会话变量 $_SESSION["username"] = "JohnDoe"; $_SESSION["email"] = "john@example.com";

// 访问会话变量 echo $_SESSION["username"]; // 输出 JohnDoe

会话的持久化

会话数据通常存储在服务器的临时文件夹中,但这个存储位置可以通过修改 session.save_path 配置选项进行改变。会话数据在每个页面请求结束时写入存储,并在每个新请求时(通过 session_start())读取。

会话的安全性和生命周期

  • 会话ID应该保持安全,防止会话劫持。
  • 会话数据保持在服务器上,因此敏感信息不会直接暴露给客户端。
  • 会话可以设定过期时间,超过这个时间不活动的会话将被自动清理。
  • 会话也可以通过 session_destroy() 函数显式地销毁。

总之,会话在PHP中是用来维持用户状态和存储跨页面请求的用户数据的重要工具。通过 session_start() 和 $_SESSION,你可以在用户浏览你的网站时为他们提供一致的、个性化的体验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独立服务器,数据安全保障:WorkPlus即时通讯为企业信息安全把关

随着手机普及率的不断增加,即时通讯已经成为了企业内部沟通的重要方式。WorkPlus作为一家领先的企业级即时通讯服务商,提供了全方位的即时通讯解决方案,助力企业实现沟通无障碍、协作高效率的目标。 WorkPlus提供了多样化的即时通讯功能&…

轻松解锁销售利润!使用淘宝商品关键词搜索API接口

随着电商行业的快速发展,如何提高销售利润成为了卖家们的关注焦点。淘宝商品关键词搜索API接口提供了一种高效的方式来帮助卖家们找到最适合的商品关键词,提高商品曝光率和销售量。联讯数据将全面介绍淘宝商品关键词搜索API接口的用途、优势以及如何使用…

蓝桥杯模拟赛题——魔法失灵了——toRefs()

目标 找到 index.html 中 TODO 部分,正确修复代码使 data 对象恢复响应式特性,即点击页面上的 - 与 按钮可以改变 value 的值。正确实现后效果如下: 题解 value是reactive 利用toRefs; toRefs() 函数可以将 reactive() 创建出来的响应式对象…

数据结构之单链表的相关知识点及应用

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构 目录 链表的概念及结构 链表与顺序表的区别与优劣势 链表的分类 单链表的实现 单链表中增加节点 单链表中尾插数据 打印单链…

《零基础入行IT:步步为营的转型攻略与实践策略》

在信息化社会,IT行业以其强劲的发展势头、广阔的就业前景和丰厚的薪酬待遇,吸引了无数希望转行或初入职场人士的目光。然而,对于毫无相关背景知识的人来说,如何成功叩开IT行业的大门,似乎是一项颇具挑战性的任务。本文…

SSH和交换机端口安全概述

交换机的安全是一个很重要的问题,因为它可能会遭受到一些恶意的攻击,例如MAC泛洪攻击、DHCP欺骗和耗竭攻击、中间人攻击、CDP 攻击和Telnet DoS 攻击等,为了防止交换机被攻击者探测或者控制,必须采取相应的措施来确保交换机的安全…

visual studio 2017开发QT框架程序

1. 配置开发环境 首先创建项目 进入到项目后,右键点击项目点击属性,配置如下:

【bash自动补全原理】

1 bash自动补全原理 1)自动补全依赖于bash的内置命令complete、compgen、和/etc/bash_completioin.d路径下的自动补全脚本。补齐功能可以通过脚本指定命令参数如何补齐。默认补全脚本在/etc/bash_completion.d目录下。 2)一般系统中会安装bash-complet…

所谓成长,从走出舒适区,做有挑战的事开始。

哈喽,你好啊,我是雷工! 史蒂夫乔布斯曾说过:“只有走出舒适区,才能发现更好地自己。” 01 度娘的掉队危机 曾经遇事不决问百度,百度,阿里巴巴,腾讯作为国内三家顶级的互联网公司被大家称为BAT三巨头。 后来百度的存在感越来越低,遇到问题也不仅仅去百度,而是会去抖…

Window11的CUDA 和CUDNN的安装

确定自己电脑的英伟达驱动版本 打开英伟达的控制面板:确定自己的版本,安装的CUDA和CUDNN不能超过这个版本 下载CUDA (我个人安装的是CUDA12)CUDA12的下载网址 下载网址 下载到安装包之后,直接点击就可以完成安装: 完成之后会有个文件夹:

linux上使用redis-cli登录以及操作redis

1、找到redis-cli 2、输入redis-cli回车 3、登录redis 输入auth密码 4、登录成功

2024年第十七届“认证杯”数学中国数学建模网络挑战赛C题思路

C题 云中的海盐 巴黎气候协定提出的目标是:在 2100 年前,把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平,并为1.5摄氏度而努力。但事实上,许多之前的研究已经指出,全球的碳排放以及气温升温的前景都无法达到这一预期标准。而且传统的减排措施的实…

stm32 之SPI通信协议

本文为大家介绍 SPI 通信协议的基础知识。 文章目录 前言一、SPI协议的概念二、SPI总线架构三、SPI通讯时序1. 起始,停止 信号2.CPOL(时钟极性)/CPHA(时钟相位) 四, I2C 总线 和SPI 总线比较相同点&#xf…

Elastic 线下 Meetup 将于 2024 年 4 月 27 号在重庆举办

2024 Elastic Meetup 重庆站活动,由 Elastic、新智锦绣联合举办,现诚邀广大技术爱好者及开发者参加。 活动时间 2024年4月27日 13:30-18:00 活动地点 中国重庆 沙坪坝区学城大道62-1号研发楼一期b3栋1楼(瑞幸咖啡旁) 活动流程 14:00-14:50…

卫星图像10个开源数据集资源汇总

文章目录 1、UC Merced Land-Use 2、Indian Pines 3、KSC 4、Washington DC 5、BigEarthNet 6、水体卫星图像的图像 7、城市航拍图像分割数据集 8、游泳池和汽车卫星图像检测 9、人工月球景观数据集 10、马萨诸塞州道路数据集 1、UC Merced Land-Use 数据集下载地址&am…

Windows系统本地部署Jupyter Notebook并实现公网访问编辑笔记

文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 在数据分析工作中,使用最多的无疑就是各种函数、图表、…

鱼眼摄像头畸变校正方法概述

1. 摘要 鱼眼摄像头以其独特的广阔视场和其他特点,在各个领域得到了广泛应用。然而,与针孔相机相比,鱼眼摄像头存在显著的畸变,导致拍摄的图像失畸变严重。鱼眼摄像头畸变是数字图像处理中常见的问题,需要有效的校正技…

【AcWing】蓝桥杯集训每日一题Day29|数学期望|DP|4009.收集卡牌(C++)

4009.收集卡牌 4009. 收集卡牌 - AcWing题库难度:困难时/空限制:1s / 512MB总通过数:995总尝试数:1852来源:第23次CCF计算机软件能力认证算法标签数学期望DP状态压缩DP记忆化搜索 题目内容 小林在玩一个抽卡游戏&…

淘宝/天猫获得淘宝商品评论 API 返回值说明,item_review-获得淘宝商品评论

淘宝/天猫的API通常不对公众开放,特别是涉及到具体商品评论的API。商家或开发者需要使用淘宝/天猫开放平台提供的API进行开发,并且需要遵循一定的申请流程和权限限制。 对于“item_review-获得淘宝商品评论”的API返回值说明,我无法提供具体…

CSS3 立体 3D 变换

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 ✍CSS3 立体 3D 变换💎1 坐标轴💎2 perspective 透视视…