【发布时间】:2011-07-19 23:44:45
【问题描述】:
不确定这是属于这里还是属于 webapps...如果合适,请移步。
我什至不知道这样的事情是否可行,但是是否有适用于 Firefox 或 Chrome 的扩展程序或附加组件可以让我查看所有 PHP 会话变量,就像有扩展程序可以让您查看 cookie 一样?
【问题讨论】:
标签: php firefox google-chrome browser session-variables
不确定这是属于这里还是属于 webapps...如果合适,请移步。
我什至不知道这样的事情是否可行,但是是否有适用于 Firefox 或 Chrome 的扩展程序或附加组件可以让我查看所有 PHP 会话变量,就像有扩展程序可以让您查看 cookie 一样?
【问题讨论】:
标签: php firefox google-chrome browser session-variables
Cookie 在客户端可用,因此可以从浏览器中看到。
另一方面,会话数据存储在服务器上,并且从不发送到客户端(当然,除非您编写一些代码来执行此操作)。 p>
要转储变量的内容,例如$_SESSION,您可以使用var_dump() 函数。
在开发服务器上,您可以安装 Xdebug 扩展以大大增强其输出(以及许多其他与调试相关的东西,顺便说一句)。
如果您不想污染页面的 HTML,可以在 FireBug 中安装 FirePHP 扩展,并使用相应的 PHP 库发送数据(如变量转储)给它。
这将允许您的变量(例如 $_SESSION)显示在 firebug 的控制台中。
【讨论】:
PHP 会话变量存储在服务器上,客户端无法访问。
【讨论】:
没有。会话数据是服务器端的,而 cookie 是客户端的。会话 cookie 包含会话标识符,服务器(即:PHP)使用它来检索正确的会话数据。
如果没有远程访问服务器或使用脚本(驻留在服务器上),则无法查看会话数据。
这就是为什么建议将“敏感”信息存储在会话中而不是 cookie 中的原因,因为它不容易查阅/更改。
【讨论】:
没有。会话变量存储在服务器上。在 Firefox 中唯一可见的是会话 ID,存储在会话 cookie 中(例如PHP_SESS_ID=randomgarbage)。
您必须明确编写一个脚本来转储会话变量,就像这样简单:
dumpsession.php:
<pre>
<?php
var_dump($_SESSION);
【讨论】:
要从会话中访问某些内容,您可以使用 var_dump,由于安全限制,我不使用浏览器。 http://php.net/manual/en/function.var-dump.php
【讨论】:
您可以使用: 打印_r ($_SESSION);
【讨论】:
我有一个显示 $_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”或类似名称,它会显示当前会话。 不要把它放在生产服务器上!!!
【讨论】: