2011-03-21 156 views
29

不知道这是属于这里还是在web应用程序中...如果适用,请移动。查看php会话变量

我甚至不知道这样的事情是否可行,但是Firefox或Chrome是否有扩展或附加组件,让我可以查看我所有的PHP会话变量,这些扩展组件可让您查看饼干?

回答

53

饼干都可以在客户端,所以他们可以从浏览器中看到。


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

转储变量的内容,如$_SESSION,您可以使用var_dump()功能。
在开发服务器,您可以安装Xdebug延伸,以提高它的输出大大(和许多其他调试相关的东西,顺便说一句)

如果你不想污染您网页的HTML,你可以安装FirePHP扩展到萤火虫,并使用相应的PHP库发送数据(如变量转储)它。
这将使你的变量,如$_SESSION,显示在Firebug的控制台。

+0

我刚才接受了这个,但从未评论过FirePHP扩展是我一直在寻找,谢谢 – EmmyS 2011-08-11 16:12:46

+0

@EmmyS欢迎您:-)很高兴能帮到您! – 2011-08-11 16:59:52

+0

这意味着用户或黑客无法看到我们在应用程序中使用的可变模式是什么,我是对吗? – 2016-10-10 11:50:02

6

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

1

编号会话变量存储在服务器上。唯一可以在Firefox中看到的是存储在会话cookie中的会话的ID(例如PHP_SESS_ID=randomgarbage)。

你必须明确地编写一个脚本,将转储出来的会话变量,东西一样简单:

dumpsession.php:

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

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

这是不可能的,以查看会话数据,而不远程访问服务器,或者使用脚本(即驻留在服务器上)。

这就是为什么我们建议以存储在会话,而不是曲奇“敏感”信息,因为它不能被咨询/轻易改变。

0

您可以使用: 的print_r($ _SESSION);

+1

请扩大您的答案 – 2013-01-15 14:32:55

+0

如果您不想使用扩展名,您可以在php文件中使用 Print_r($ _SESSION); 认为它可能有帮助,有一个很好的 – 2013-01-22 15:38:14

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“或类似的东西,它显示当前的会话。 不要把它留在生产服务器上!!!