PHP 教程

PHP 教程 PHP 简介 PHP 下载安装 PHP 语法 PHP 注释 PHP 变量 PHP Echo / Print PHP 数据类型 PHP 字符串 PHP 数值 PHP Math PHP 常量 PHP 运算符 PHP If...Else...Elseif PHP Switch PHP 循环 PHP 函数 PHP 数组 PHP 全局变量 PHP 正则表达式

PHP 表单

PHP 表单处理 PHP 表单验证 PHP 表单验证必填字段 PHP 表单验证URL/E-mail PHP 表单验证实例

PHP 高级教程

PHP 日期和时间 PHP Include PHP 文件处理 PHP 文件打开/读取 PHP 文件创建/写入 PHP 文件上传 PHP Cookies PHP Sessions PHP Filters PHP Filters Advanced PHP 回调函数 PHP JSON PHP 异常处理

PHP 面向对象

PHP 什么是 OOP PHP 类和对象 PHP 构造函数 PHP 析构函数 PHP 访问修饰符 PHP 继承 PHP 类常量 PHP 抽象类 PHP 接口 PHP 特征 PHP 静态方法 PHP 静态属性 PHP 命名空间 PHP 可迭代对象

MySQL 数据库

MySQL Database MySQL Connect MySQL Create DB MySQL Create Table MySQL Insert Data MySQL Get Last ID MySQL Insert Multiple MySQL Prepared MySQL Select Data MySQL Where MySQL Order By MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX Database AJAX XML AJAX Live Search AJAX Poll

PHP 实例

PHP 实例 PHP 编译器 PHP 测验 PHP 练习

PHP 参考手册

PHP 概述 PHP Array PHP Calendar PHP Date PHP Directory PHP Error PHP Exception PHP Filesystem PHP Filter PHP FTP PHP JSON PHP Keywords PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP Network PHP Output Control PHP RegEx PHP SimpleXML PHP Stream PHP String PHP Variable Handling PHP XML Parser PHP Zip PHP Timezones


PHP session 会话

PHP session 变量用于存储有关用户会话的信息。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。

与 cookie 不同,信息不存储在用户计算机上。


PHP Session 会话

您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它。这很像一次会话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于 HTTP 地址无法保持状态,Web 服务器并不知道您是谁以及您做了什么。

PHP session 解决了这个问题,它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。

Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导。

提示: 如果需要永久性存储,则可能需要将数据存储在数据库中。


开始 PHP Session

使用 session_start() 函数启动会话。

会话变量使用 PHP 全局变量设置: $_SESSION.

现在,让我们创建一个名为 "demo_session1.php" 的新页面。在本页中,我们启动一个新的 PHP 会话并设置一些会话变量:

实例

<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>

</body>
</html>
运行实例 »

注释: session_start() 函数必须是文档中的第一项。在任何 HTML 标记之前。



获取 PHP session 会话变量值

接下来,我们创建另一个名为"demo_session2.php"的页面。从这个页面,我们将访问我们在第一个页面上设置的会话信息("demo_session1.php")。

请注意,会话变量并不是单独传递给每个新页面,而是从我们在每个页面开头打开的会话(session_start())中检索。

还要注意,所有会话变量值都存储在 $_SESSION 全局会话变量中:

实例

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html>
运行实例 »

显示用户 session 会话的所有会话变量值的另一种方法是运行以下代码:

实例

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
print_r($_SESSION);
?>

</body>
</html>
运行实例 »

它是如何工作的?它怎么知道是我?

大多数会话在用户计算机上设置的用户密钥如下所示:765487CF34ERT8DEDEDA562E4F3A7E12。然后,当在另一个页面上打开会话时,它会扫描计算机以查找用户密钥。如果存在匹配项,则访问该会话;如果不匹配,则启动新会话。


修改 PHP Session 变量

要更改会话变量,只需覆盖它:

实例

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>

</body>
</html>
运行实例 »

销毁 PHP Session

要删除所有全局会话变量并销毁会话, 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 实验

学习训练

练习题:

创建一个名为"favcolor"的 session 会话变量。

session_start();
["favcolor"] = "green";