21xrx.com
2024-11-05 19:28:08 Tuesday
登录
文章检索 我的文章 写文章
PHP session
2021-07-22 16:18:39 深夜i     --     --
P H P


会话是存储信息(在变量中)以跨多个页面使用的方式。

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


什么是PHP会话?

当您使用应用程序时,您打开它,做一些更改, 然后你关闭它。 这就像一个会话。 计算机知道你是谁。 它知道当您启动应用程序以及结束时。 但在互联网上 有一个问题:Web服务器不知道你是谁或你做了什么, 因为HTTP地址不保持状态。

会话变量通过存储用户信息来解决此问题 跨多页使用(例如用户名,最喜欢的颜色等)。 经过 默认值,会话变量持续到用户关闭浏览器。

所以; 会话变量保存有关单个用户的信息,并在一个应用程序中可用于所有页面。

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


启动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>

 

注意: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>

 

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

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

<?php
print_r($_SESSION);
?>

</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>

 


PHP练习

用练习来测试自己

锻炼:

创建名为“favcolor”的会话变量。

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

 

 

 

  
  
下一篇: PHP过滤器高级

评论区

{{item['qq_nickname']}}
()
回复
回复