查看php会话变量
Posted
技术标签:
【中文标题】查看php会话变量【英文标题】:View php session variables 【发布时间】:2011-07-19 23:44:45 【问题描述】:不确定这是属于这里还是属于 webapps...如果合适,请移步。
我什至不知道这样的事情是否可行,但是是否有适用于 Firefox 或 Chrome 的扩展程序或附加组件可以让我查看所有 php 会话变量,就像有扩展程序可以让您查看 cookie 一样?
【问题讨论】:
【参考方案1】:Cookie 在客户端可用,因此可以从浏览器中看到。
另一方面,会话数据存储在服务器上,并且从不发送到客户端(当然,除非您编写一些代码来执行此操作)。 p>
要转储变量的内容,例如$_SESSION
,您可以使用var_dump()
函数。
在开发服务器上,您可以安装 Xdebug 扩展以大大增强其输出(以及许多其他与调试相关的东西,顺便说一句)。
如果您不想污染页面的 html,可以在 FireBug 中安装 FirePHP 扩展,并使用相应的 PHP 库发送数据(如变量转储)给它。
这将允许您的变量(例如 $_SESSION
)显示在 firebug 的控制台中。
【讨论】:
我不久前接受了这一点,但从未发表评论。 FirePHP 扩展正是我一直在寻找的,谢谢。 这意味着用户或黑客无法看到我们在应用程序中使用的变量模式是什么。我说的对吗?【参考方案2】:PHP 会话变量存储在服务器上,客户端无法访问。
【讨论】:
【参考方案3】:没有。会话数据是服务器端的,而 cookie 是客户端的。会话 cookie 包含会话标识符,服务器(即:PHP)使用它来检索正确的会话数据。
如果没有远程访问服务器或使用脚本(驻留在服务器上),则无法查看会话数据。
这就是为什么建议将“敏感”信息存储在会话中而不是 cookie 中的原因,因为它不容易查阅/更改。
【讨论】:
【参考方案4】:没有。会话变量存储在服务器上。在 Firefox 中唯一可见的是会话 ID,存储在会话 cookie 中(例如PHP_SESS_ID=randomgarbage
)。
您必须明确编写一个脚本来转储会话变量,就像这样简单:
dumpsession.php:
<pre>
<?php
var_dump($_SESSION);
【讨论】:
【参考方案5】:要从会话中访问某些内容,您可以使用 var_dump,由于安全限制,我不使用浏览器。 http://php.net/manual/en/function.var-dump.php
【讨论】:
【参考方案6】:您可以使用: 打印_r ($_SESSION);
【讨论】:
请扩展您的答案。 如果不想使用扩展,可以在php文件中使用Print_r($_SESSION);认为它可能会有所帮助,祝你愉快【参考方案7】:我有一个显示 $_SESSION 变量的简单脚本。
<?php
error_reporting(E_ALL);
session_start();
if (isset($_POST['session']))
$session = eval("return $_POST['session'];");
if (is_array($session))
$_SESSION = $session;
header("Location: $_SERVER['PHP_SELF']?saved");
else
header("Location: $_SERVER['PHP_SELF']?error");
$session = htmlentities(var_export($_SESSION, true));
?>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Session Variable Management</title>
<style>
textarea font: 12px Consolas, Monaco, monospace; padding: 2px; border: 1px solid #444444; width: 99%;
.saved, .error border: 1px solid #509151; background: #DDF0DD; padding: 2px;
.error border-color: #915050; background: #F0DDDD;
</style>
</head>
<body>
<h1>Session Variable Management</h1>
<?php if (isset($_GET['saved'])) ?>
<p class="saved">The session was saved successfully.</p>
<?php else if (isset($_GET['error'])) ?>
<p class="error">The session variable did not parse correctly.</p>
<?php ?>
<form method="post">
<textarea name="session" rows="<?php echo count(preg_split("/\n|\r/", $session)); ?>"><?php echo $session; ?></textarea>
<input type="submit" value="Update Session">
</form>
</body>
</html>
将它安装在测试服务器上,将其命名为“sess.php”或类似名称,它会显示当前会话。 不要把它放在生产服务器上!!!
【讨论】:
以上是关于查看php会话变量的主要内容,如果未能解决你的问题,请参考以下文章