PHP 会议
会话是一种存储可在多个页面中使用的信息(以变量的形式)的方式。
与 cookie 不同,该信息不会存储在用户的计算机上。
什么是 PHP 会话?
当您使用应用程序时,您会打开它,进行一些更改,然后关闭它。这很像会话。计算机知道您是谁。它知道您何时启动应用程序以及何时结束。但在互联网上有一个问题:Web 服务器不知道您是谁或您做什么,因为 HTTP 地址不维护状态。
会话变量通过存储跨多个页面使用的用户信息(例如用户名、喜欢的颜色等)解决了此问题。默认情况下,会话变量会持续存在,直到用户关闭浏览器。
因此,会话变量保存有关单个用户的信息,并且可供一个应用程序中的所有页面使用。
提示: 如果需要永久存储,您可能希望将数据存储在数据库.
启动 PHP 会话
会话开始于 session_start()
功能。
会话变量使用 PHP 全局变量设置:$_SESSION。
现在,让我们创建一个名为“demo_session1.php”的新页面。在此页面中,我们启动一个新的 PHP 会话并设置一些会话变量:
例子
<?php
// 开始会话
会话开始();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// 设置会话变量
$_SESSION["favcolor"] = "绿色";
$_SESSION["favanimal"] = "猫";
echo "会话变量已设置。";
?>
</body>
</html>
运行示例 »
笔记: 这session_start()
函数必须是文档中最重要的部分。位于任何 HTML 标签之前。
获取 PHP 会话变量值
接下来,我们创建另一个页面,名为“demo_session2.php”。从这个页面,我们将访问我们在第一个页面(“demo_session1.html”)上设置的会话信息。
请注意,会话变量不会单独传递给每个新页面,而是从我们在每个页面开始时打开的会话中检索它们(session_start()
).
还要注意,所有会话变量值都存储在全局 $_SESSION 变量中:
例子
<?php
会话开始();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// 回显上一页设置的会话变量
echo "最喜欢的颜色是" . $_SESSION["favcolor"]. ".<br> “;
echo "最喜欢的动物是" . $_SESSION["favanimal"]. ".";
?>
</body>
</html>
运行示例 »
显示用户会话的所有会话变量值的另一种方法是运行以下代码:
它是如何工作的?它怎么知道是我?
大多数会话都会在用户的计算机上设置一个用户密钥,如下所示:765487cf34ert8dede5a562e4f3a7e12。然后,当在另一个页面上打开会话时,它会扫描计算机以查找用户密钥。如果匹配,它会访问该会话,如果不匹配,它会启动一个新会话。
修改 PHP 会话变量
要更改会话变量,只需覆盖它:
例子
<?php
会话开始();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// 要更改会话变量,只需覆盖它
$_SESSION["favcolor"] = "黄色";
打印_r($ _SESSION);
?>
</body>
</html>
运行示例 »
销毁 PHP 会话
要删除所有全局会话变量并销毁会话,请使用 session_unset()
和session_destroy()
:
例子
<?php
会话开始();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// 删除所有会话变量
会话取消设置();
// 销毁会话
会话销毁();
?>
</body>
</html>
运行示例 »