📜  PHP |会话

📅  最后修改于: 2022-05-13 01:56:37.742000             🧑  作者: Mango

PHP |会话

什么是会话?

一般来说,会话是指两种介质之间的通信帧。 PHP会话用于将数据存储在服务器而不是用户的计算机上。会话标识符或 SID 是一个唯一编号,用于在基于会话的环境中识别每个用户。 SID 用于将用户与他在服务器上的信息(如帖子、电子邮件等)链接起来。

会话比 cookie 好在哪里?

虽然cookies也被用于存储用户相关数据,但由于cookies存储在用户的计算机上,因此存在严重的安全问题,因此它们对攻击者开放,可以轻松修改cookie的内容。攻击者在cookie中添加有害数据可能导致应用程序崩溃。
除此之外,cookie 会影响网站的性能,因为 cookie 会在用户每次查看页面时发送用户数据。每次浏览器向服务器请求 URL 时,该网站的所有 cookie 数据都会自动发送到要求。

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

  • 启动PHP会话:第一步是启动会话。会话启动后,可以创建会话变量来存储信息。 PHP session_start()函数用于开始一个新会话。它还为用户创建一个新的会话 ID。

    下面是开始一个新会话的PHP代码:

    
    
  • 存储会话数据:使用$_SESSION[]超全局数组的键值对中的会话数据。可以在会话的生命周期内访问存储的数据。

    下面是使用两个会话变量 Rollnumber 和 Name 存储会话的PHP代码:

    
    
  • 访问会话数据:通过首先调用session_start()然后将相应的键传递给$_SESSION关联数组,可以轻松访问存储在会话中的数据。

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

    '; 
    echo 'The Roll number of the student is :' . $_SESSION["Rollnumber"] . '
    ';    ?>

    输出:

    The Name of the student is :Ajay 
    The Roll number of the student is :11
  • 销毁某些会话数据:要仅删除某个会话数据,可以将未设置功能与$_SESSION关联数组中的相应会话变量一起使用。

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

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

    
    

要点

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