首页 > 解决方案 > PHP会话被视为局部变量

问题描述

我对 PHP 会话有疑问。当我开始会话并尝试向其中添加变量时,我只能进入我声明它的同一个 PHP 脚本,就像它是普通变量一样。浏览器调试器似乎也没有在会话中看到任何变量。

<?php

echo session_start(); //This returns 1 so session is created
$_SESSION["A"] = "B"; 
echo $_SESSION["A"]; // And this prints "B" as predicted 

?>

但是会话中什么都没有!

标签: phpsessionsession-storage

解决方案


您在这里混淆了服务器端 PHP 会话和客户端 JavaScript sessionStorage。两者都是完全不同的东西。

https://www.php.net/manual/en/intro.session.php

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

浏览器调试器似乎也没有在会话中看到任何变量。

PHP 会话数据保存在服务器上,浏览器永远无法“看到”它,除非您明确地将其输出到某处(就像您对 所做的那样echo $_SESSION["A"];,但即便如此,它当然也不会显示在 sessionStorage 调试面板中。)


我只能进入我声明它的同一个 PHP 脚本,就像它是普通变量一样。

然后你很可能忽略了在其他脚本文件中再次选择你的会话。您需要在所有session_start这些的开头调用。


推荐阅读