什么是会话?
通常, 会话是指两个介质之间的通信框架。 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();
?>
重要事项
- 会话ID由PHP引擎随机生成。
- 会话数据存储在服务器上, 因此不必随每个浏览器请求一起发送。
- 在浏览器中的脚本生成任何输出之前, 必须在页面的开头调用session_start()函数。