如果您是活跃的互联网用户,您可能已经看到过以下短语:您的会话已过期。它通常会在长时间不活动后重新打开页面时显示。因此,您不会自动登录,并且特定网页的功能不再可用。

PHP 会话是特定应用程序的所有网页都可以访问数据的原因。该特定数据现在以变量的形式保存,暂时存储在服务器上。当您关闭浏览器的窗口或选项卡时,会话将完成。

在本教程中,我们将讨论什么是 PHP 会话,它们如何开始或结束。我们还将熟悉 PHP 会话变量并了解 PHP $_SESSION 的含义。

内容

PHP 会话:主要提示

  • 会话是一种存储数据(使用变量)的方法,以便浏览器可以在多个网页中使用它。

  • 与 Cookie 不同,数据不会保存在用户的系统上。

  • 会话变量包含有关当前用户的数据。它们可访问单个 Web 应用程序中包含的所有页面。

  • 会话数据不是永久性的,但您可以使用数据库为特定用户加载永久用户数据。

启动会话

要启动 PHP 会话,必须使用函数 。session_start()

要设置会话变量,您需要应用全局 PHP 变量。$_SESSION

在下面的示例中,我们开始 PHP 文件demo_session1.php。让我们来看看我们如何做到这一点:

例复制

<?php 
  // Start the session
  session_start();?><!DOCTYPE html><html>
  <body>
  <?php
    // Set session variables
    $_SESSION["color"]= "blue";
    $_SESSION["animal"]= "dog";    echo "The session variable are set up.";  ?>
  </body></html>

注意:PHP session_start() 函数必须是文档中的第一件事:所有 HTML 标签都在后面。

获取变量的值

为了继续,我们创建了demo_session2.php。使用此文件,我们将访问demo_session1.php上的数据。请注意必须如何单独检索会话数据(以变量的形式)(PHP 函数)。session_start()

请参阅下面的示例以更好地了解 PHP 变量如何保存文件中声明的所有会话数据:$_SESSION

例复制

<?php session_start(); ?><!DOCTYPE html><html>
  <body>
  <?php
    // Echo session variables that were set on previous page
    echo "The color of my choice is " . $_SESSION["color"] . ".<br>";    echo "The animal of my choice is " . $_SESSION["animal"] . ".";  ?>
  </body></html>

在下面的脚本示例中,您可以看到如何显示所有当前声明的会话变量:

例复制

<?php session_start(); ?><!DOCTYPE html><html>
  <body>
  <?php
    print_r($_SESSION);  ?>
  </body></html>

想知道会话如何知道是谁?这很简单:会话在用户的计算机上创建用户标识符。它是一个由 32 个随机字符组成的字符串(例如,3c7ght34c3jj9083hjaje2fc650e344t)。

当会话在另一个窗口中启动时,它会检查以前创建的用户标识符,并在找到时继续。

变量的修改

您只需覆盖会话变量即可更改它们:

例复制

<?php session_start(); ?><!DOCTYPE html>
<html>
  <body>  <?php 
    // you can change a session variable by assigning a new value
    $_SESSION["color"] = "red";
    print_r($_SESSION);  ?>
  </body>
</html>

如何销毁会话

session_unset()将删除所有全局变量,同时将完全销毁会话。但是,两者都具有相似的效果:session_destroy()

例复制

<?php session_start(); ?><!DOCTYPE html><html>
  <body>
  <?php
    //remove all session variables
    session_unset();    // destroy the session 
    session_destroy();  ?>
  </body></html>

PHP 会话:摘要

  • 存储包含供浏览器使用的数据的变量的方法称为会话。这些数据不是永久性的,也不会保存在用户的个人计算机中(与 cookie 不同)。

  • 有关当前用户的信息保存在会话变量中,并且可以访问 Web 应用程序的所有页面。全局 PHP 变量存储所有会话变量的值。$_SESSION

  • 要完成会话,您只需关闭加载网站的窗口或选项卡即可。

  • 可以使用数据库为特定用户加载永久用户数据。