Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话被视为局部变量_Php_Session_Session Storage - Fatal编程技术网

PHP会话被视为局部变量

PHP会话被视为局部变量,php,session,session-storage,Php,Session,Session Storage,我对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 ?> 您将服务器端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 

?>


您将服务器端PHP会话与客户端JavaScript
会话存储混为一谈。两者是完全不同的两件事

浏览器调试程序在会话中似乎也看不到任何变量

<?php

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

?>
PHP会话数据保存在服务器上,浏览器永远无法“看到它”,除非您明确地将其输出到某个地方(就像您在
echo$\u session[“A”];
中所做的那样,但即使这样,它当然也不会显示在sessionStorage debug面板中)


我只能在同一个PHP脚本中声明它,就像它是普通变量一样


然后,您很可能忽略了在其他脚本文件中重新启动会话。您需要在所有会话开始时调用
session\u start

请将会话id打印到浏览器中,并在每次刷新页面时查看会话id是否继续更改。如果继续更改,则可能未创建会话文件。检查会话文件夹以验证是否正在创建文件。好的,这就解释了为什么我在浏览器调试程序中看不到会话属性,但不应该允许我在不同的.php文件中使用此$\u会话变量吗?因为这是主要问题。我有一个登录表单,我想在会话中保存登录的用户名,以便在不同的文件中使用,但其他脚本看不到它。您是否在所有这些不同的脚本中调用
session\u start
?是的,它看起来就是这样:在login.php中:
在wall.php中:
session\u start();echo$_会话[“loggedUser”]您是否检查了会话id的情况,正如Sid建议您对上面的注释所做的那样?这在两个视图中都是相同的,并且在我刷新页面时保持不变。