如何理解PHP中的会话session?

2021年3月19日13:58:46 发表评论 757 次浏览

什么是会话

通常, 会话是指两个介质之间的通信框架。 PHP会话用于将数据存储在服务器而非用户的计算机上。会话标识符或SID是唯一的数字, 用于标识基于会话的环境中的每个用户。 SID用于将用户与其在服务器上的信息(例如帖子, 电子邮件等)链接起来。

会话比cookie更好吗?

尽管cookie也用于存储与用户相关的数据, 但由于cookie存储在用户计算机上, 因此它们存在严重的安全问题, 因此攻击者可以轻松地修改cookie的内容。攻击者在cookie中添加了有害数据可能会导致应用程序崩溃。

Cookie会影响网站的性能, 因为Cookie会在用户每次查看页面时向用户发送数据。每次浏览器向服务器请求URL时, 该网站的所有Cookie数据都会自动发送到服务器内的服务器。请求。

以下是PHP会话中涉及的不同步骤:

开始一个PHP会话

:第一步是启动会话。会话开始后, 可以创建会话变量来存储信息。的PHP

session_start()

功能用于开始新的会话。它还会为用户创建新的会话ID。

以下是开始新会话的PHP代码:

<?php
  
session_start();
  
?>

储存工作阶段资料

:使用

$ _SESSION []

超全局数组。可以在会话的生存期内访问存储的数据。

以下是用于存储具有两个会话变量Rollnumber和Name的会话的PHP代码:

<?php
  
session_start();
  
$_SESSION [ "Rollnumber" ] = "11" ;
$_SESSION [ "Name" ] = "Ajay" ;
  
?>

访问会话数据

:首先调用即可轻松访问会话中存储的数据

session_start()

然后将相应的密钥传递给

$ _SESSION

关联数组。

下面显示了使用两个会话变量Rollnumber和Name访问会话数据的PHP代码:

<?php
  
session_start();
  
echo 'The Name of the student is :' . $_SESSION [ "Name" ] . '<br>' ; 
echo 'The Roll number of the student is :' . $_SESSION [ "Rollnumber" ] . '<br>' ;
  
?>

输出如下:

The Name of the student is :Ajay 
The Roll number of the student is :11

销毁某些会话数据

:要仅删除某些会话数据, 可以将未设置功能与相应会话变量一起使用

$ _SESSION

关联数组。

PHP代码仅从关联会话数组中取消设置" Rollnumber"会话变量:

<?php
  
session_start();
   
if (isset( $_SESSION [ "Name" ])){
     unset( $_SESSION [ "Rollnumber" ]);
}
  
?>

销毁完整会话:session_destroy()函数用于完全销毁会话。 session_destroy()函数不需要任何参数。

<?php
  
session_start();
session_destroy();
  
?>

重要事项

  1. 会话ID由PHP引擎随机生成。
  2. 会话数据存储在服务器上, 因此不必随每个浏览器请求一起发送。
  3. 在浏览器中的脚本生成任何输出之前, 必须在页面的开头调用session_start()函数。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: