如何从本地的 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 中看到了 cookie PHPSESSID。但我看不到它的细节(比如它的变量)。我在哪里可以找到响应标头? 您只能在响应中获得 cookie,而不是会话内容(那些留在服务器上)。您可以在 Chrome DevTools 以及网络选项卡中找到响应标头。

以上是关于如何从本地的 PHP session_start() 检查不同的变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

PHP会话控制之session_start

session与PHP之session_start()

关于PHP session_start出现的错误

javascript fetch 时 php session_start() 的奇怪行为

如何检查是不是已输入 session_start? [复制]

如何检查是不是已输入 session_start? [复制]