PHP session

1.什么是session

session通常指从注册进入系统到注销退出系统所经历的时间


2.session工作原理

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


3.session的功能

session可以记录用户的有关信息,以供用户再次以此身份对web服务器提交要求时作确定。


4.创建session

创建session需要以下几个步骤:启动会话-注册会话-使用会话-删除会话

启动会话:启动会话的方式有两种,一种是使用session_start()函数,另一种是使用session_register()函数

使用session_start()函数之前不能有任何输出

注册会话:会话变量被创建后,全部保存在数组$_SESSION中。通过数组$_SESSION创建一个会话变量很容易,只需给数组添加一个元素

<?php
session_start();
$_SESSION["admin"]=null;
?>


使用会话:首先判断会话变量是否有一个会话ID存在,如果不存在,就创建一个,存在的话,就直接给用户使用。

<?php
if(!empty($_SESSION['session_name']))
$myvalue=$_SESSION['session_name'];
?>


删除会话:

删除单个会话

如注销$_session['user']变量,可以使用unset()函数

unset($_SESSION['user']

删除多个会话

即一次性注销所有的会话变量,可以通过将一个空的数组赋值给$_SESSION来实现

$_SESSION=array();

结束当前会话

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

session_destory();


5.session设置时间

### PHP Session 使用指南 #### 创建并启动会话 为了在 PHP 序列化环境中维持用户的交互状态,需调用 `session_start()` 函数来创建新的会话或恢复现有会话。此函数负责初始化会话数据,并将其与客户端通过 cookie 或 URL 参数关联起来[^1]。 ```php <?php // 启动会话前可以设置一些选项 ini_set('session.cookie_httponly', 1); ini_set('session.use_only_cookies', 1); // 开始会话 session_start(); ?> ``` #### 存储和检索会话变量 一旦建立了有效的会话连接,则可以通过超级全局数组 $_SESSION 来存取特定于该访客的信息。这些信息会在整个浏览期间持续存在直至显式删除或超时期满。 ```php <?php $_SESSION['username'] = "JohnDoe"; // 设置会话变量 echo $_SESSION['username']; // 获取会话变量 unset($_SESSION['username']); // 删除单个会话变量 session_destroy(); // 销毁全部会话数据 ?> ``` #### 安全实践建议 当涉及到敏感资料传输时,应当采取额外的安全措施以保护用户隐私及防止潜在攻击。这包括但不限于启用 HTTPS 协议、配置严格的 Cookie 属性以及采用第三方库增强安全性[^3]。 ```php <?php require_once 'vendor/autoload.php'; $config = [ 'lifetime' => 86400, // 设置会话生命周期为一天 'httponly' => true, 'secure' => isset($_SERVER["HTTPS"]), // 只允许通过 HTTPS 发送 Cookies ]; $sessionManager = new \Ezimuel\PhpSecureSession\Session($config); $sessionManager->start(); if ($userAuthenticated) { $segment = $sessionManager->getSegment('auth'); $segment->set('userId', $userId); } ?> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值