会话是存储信息的方式(in variables)在多个页面中使用。
不像饼干,信息不会存储用户的计算机上。
什么是PHP会话?
当你与一个应用程序时,您打开它,做一些更改,然后关闭它。 这很像一个会话。 计算机知道你是谁。 它知道,当你启动应用程序,当你结束。 但是,在互联网上有一个问题:Web服务器不知道你是谁,你做什么,因为HTTP地址不能保持状态。
Session变量解决在多个页面中使用此问题,通过存储用户信息(eg username, favorite color, etc) 。 默认情况下,会话变量持续到用户关闭浏览器。
所以; Session变量容纳约一个单一用户的信息,并提供给一个应用程序中的所有页面。
提示:如果你需要一个永久存储,你可能希望将数据存储在数据库中 。
启动PHP会话
会话启动与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>
运行示例» Note:该session_start()函数必须是文档中的第一件事情。 任何HTML标记之前。
获取PHP会话变量值
接下来,我们创建一个名为另一页"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>
运行示例» 显示所有的会话变量值的用户会话另一种方法是运行下面的代码:
它是如何工作的? 它怎么知道是我?
大多数会话设置用户的计算机上看起来是这样的一个用户密钥:765487cf34ert8dede5a562e4f3a7e12。 然后,当会话打开另一个页面上,它会扫描用户密钥的计算机。 如果有匹配,它访问会话,如果没有,它开始一个新的会话。
修改PHP会话变量
要改变一个会话变量,只是简单地覆盖它:
例
<?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_unset()和session_destroy()
例
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
//
remove all session variables
session_unset();
// destroy the
session
session_destroy();
?>
</body>
</html>
运行示例»