查看php会话变量

时间:2011-03-21 20:31:10

标签: php firefox google-chrome browser session-variables

不确定这是属于此还是属于webapps ...请在适当的时候移动。

我甚至不知道这样的事情是否可行,但Firefox或Chrome是否有扩展或附加组件可以让我查看我的所有PHP会话变量,就像有扩展程序可以查看cookie一样?

7 个答案:

答案 0 :(得分:56)

客户端提供Cookie,因此可以从浏览器中看到它们。


另一方面,会话数据存储在服务器上,并且永远不会发送到客户端(除了你编写一些代码来做到这一点,当然)

要转储变量的内容,例如$_SESSION,您可以使用var_dump()功能。
在开发服务器上,您可以安装Xdebug扩展以大大增强其输出(以及许多其他与调试相关的内容,顺便说一下)

如果您不想污染页面的HTML,可以将FirePHP扩展名安装到FireBug,并使用相应的PHP库发送数据(如转储变量) 这将允许您的变量(如$_SESSION)显示在firebug的控制台中。

答案 1 :(得分:6)

PHP会话变量存储在服务器上,客户端无法访问。

答案 2 :(得分:3)

没有。会话数据是服务器端,而cookie是客户端。会话cookie包含会话标识符,服务器(即:PHP)使用它来检索正确的会话数据。

如果没有远程访问服务器或使用脚本(驻留在服务器上),则无法查看会话数据。

这就是为什么建议在会话中存储“敏感”信息而不是cookie,因为它无法轻易查阅/更改。

答案 3 :(得分:1)

没有。会话变量存储在服务器上。在Firefox中唯一可见的是会话ID,存储在会话cookie中(例如PHP_SESS_ID=randomgarbage)。

您必须显式编写一个会转储会话变量的脚本,这一点很简单:

dumpsession.php:

<pre>
<?php
    var_dump($_SESSION);

答案 4 :(得分:0)

要从会话中访问您将使用var_dump的内容,我不会因浏览器的安全性限制。 http://php.net/manual/en/function.var-dump.php

答案 5 :(得分:0)

您可以使用:    Print_r($ _SESSION);

答案 6 :(得分:0)

我有一个显示$ _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”或类似名称,然后显示当前会话。 不要让它停留在生产服务器上!!!