当前位置:  首页>> 技术小册>> PHP合辑2-高级进阶

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

会话比cookies的优势在哪里?

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

除此之外,cookies还会影响网站的性能,因为每次用户查看页面时,cookies都会发送用户数据。每当浏览器请求该网站的URL时,该网站的所有cookie数据都会自动在请求中发送到服务器。

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

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

  1. <?php
  2. session_start();
  3. ?>

存储会话数据:使用$_SESSION[]超级全局数组以键值对的形式存储会话数据。存储的数据可以在会话生命周期内访问。以下是使用两个会话变量Rollnumber和Name存储会话的PHP代码:

  1. <?php
  2. session_start();
  3. $_SESSION["Rollnumber"] = "11";
  4. $_SESSION["Name"] = "Ajay";
  5. ?>

访问会话数据:首先调用session_start(),然后通过传递相应的键到$_SESSION关联数组,可以轻松地访问存储在会话中的数据。以下是访问具有两个会话变量Rollnumber和Name的会话数据的PHP代码:

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

output

  1. The Name of the student is :Ajay
  2. The Roll number of the student is :11

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

  1. <?php
  2. session_start();
  3. session_destroy();
  4. ?>

提示:
会话ID是由PHP引擎随机生成的。
会话数据存储在服务器上,因此不必随每次浏览器请求发送。
session_start()函数需要在页面的开头调用,在脚本在浏览器中生成任何输出之前。