PHP 会话被视为局部变量

PHP session seen as local variable

我的 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 

?>

But there is nothing in session!

您混淆了服务器端 PHP 会话和此处的客户端 JavaScript sessionStorage。两者是完全不同的两个东西。

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

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

Browser debuger also seems to not see any variable in session.

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


i can only get in the same PHP script where i declared it like it's normal variable.

那么您很可能忽略了在其他脚本文件中再次选择您的会话。您需要在 all 个开头调用 session_start