如何从本地的 PHP session_start() 检查不同的变量? [复制]
Posted
技术标签:
【中文标题】如何从本地的 PHP session_start() 检查不同的变量? [复制]【英文标题】:How to check the different variables from a PHP session_start() on local? [duplicate] 【发布时间】:2021-04-21 10:02:53 【问题描述】:在一个 php 文件中,我使用session_start()
启动了一个会话,然后我定义了一个会话变量$_SESSION["foo"]
。如何在本地(在我的浏览器中)检查会话是否实际启动,$_SESSION["foo"]
的值是多少?
另一个问题:在这个PHP文件中,定义了一个变量$bar = "foo";
。如何在本地(在我的浏览器中)检查$bar
的值?
(我是 PHP 新手。)
【问题讨论】:
应该看看softwareengineering.stackexchange.com/questions/171203/… 建议阅读,因为您显然还没有掌握会话是什么***.com/questions/3804209/… 感谢这些链接。现在我更好地理解了会话是什么,但我的问题是如何从中获取/读取变量。 【参考方案1】:您必须了解服务器端语言和客户端语言之间的区别。 PHP 是服务器端的,因此您的浏览器永远不会知道 PHP 代码中发生的任何事情,只要它没有返回给客户端(在这种情况下是浏览器)。
您可以更改您的代码(在服务器上!)以回显您希望在浏览器中看到的数据,如下所示:
echo $_SESSION["foo"];
echo $bar;
这会将相应变量的值发送给客户端。除此之外(或将数据发送到输出的其他方法,例如使用 var_dump()
),您无法在浏览器中看到这些值!
现在关于会话的第一个问题有一点特殊性:虽然您不能直接在浏览器中“看到”会话,但在 PHP 的默认配置中,您将收到一个名为 @ 的会话 cookie 987654323@ 给您的客户。您可以由此推断,通过在响应标头中查找会话确实已启动。
【讨论】:
确实,我在 Chrome DevTools 中看到了 cookiePHPSESSID
。但我看不到它的细节(比如它的变量)。我在哪里可以找到响应标头?
您只能在响应中获得 cookie,而不是会话内容(那些留在服务器上)。您可以在 Chrome DevTools 以及网络选项卡中找到响应标头。以上是关于如何从本地的 PHP session_start() 检查不同的变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
javascript fetch 时 php session_start() 的奇怪行为