-1

我想在页面中显示我的页面 ( ) 的所有session, post,get信息。我怎样才能做到这一点?php.php

4

5 回答 5

3
<?php print_r($_SESSION);  ?>

<?php print_r($_POST); ?>

<?php  print_r($_GET); ?>
于 2012-08-10T03:54:56.363 回答
2

好的,每个人都说很明显,但他们没有提到每个解决方案中嵌入的安全风险。

我不敢苟同,这是我的选择:

echo "<pre>";
echo htmlspecialchars(var_export($_POST, true), ENT_QUOTES);
echo htmlspecialchars(var_export($_GET, true), ENT_QUOTES);
echo htmlspecialchars(var_export($_SESSION, true), ENT_QUOTES);
echo "</pre>";

您可能不会想到攻击者会将恶意代码放入您的会话中,但您永远不知道。

换一种说法:

header("Content-type: text/plain");
var_export($_POST);
var_export($_GET);
var_export($_SESSION);

同样可以正常工作,但要注意试图嗅探内容的浏览器。

另一种可以很好地打印三分之二内容的方法:

phpinfo(INFO_VARIABLES);

最后:试试<plaintext>标签。出于显而易见的原因,它没有结束标记,因为它会结束浏览器中对 HTML 的解释,但在发送之后,您只需要关心打印纯文本即可。

echo "<plaintext>";
var_export($_POST);
var_export($_GET);
var_export($_SESSION);

var_export具有上述优势:它打印能够重新创建变量的有效 PHP 代码var_dumpprint_r对于除对象以外的任何类型,这都是 100% 正确的。对象必须实现神奇的静态方法__set_state才能重新创建。

于 2012-10-17T21:19:35.203 回答
2

使用下面的代码来print/var_dump信息

会话如下

<?php var_dump($_SESSION);  ?>

帖子在下面

<?php var_dump($_POST);  ?>

获取在下方

<?php var_dump($_GET);  ?>
于 2012-08-10T03:54:57.463 回答
1

尝试这个 :

邮政

foreach ($_POST as $key => $value) {
  $postData = "POST Field " . htmlspecialchars($key) . " is " . htmlspecialchars($value) . "<br>";
}

得到

foreach ($_GET as $key => $value) {
  $postData = "GET Field " . htmlspecialchars($key) . " is " . htmlspecialchars($value) . "<br>";
}

会议

foreach ($_SESSION as $key => $value) {
  $postData = "SESSION Field " . htmlspecialchars($key) . " is " . htmlspecialchars($value) . "<br>";
}
于 2012-10-17T13:19:29.933 回答
1

我更喜欢 var_dump() 而不是 print_r(),因为它也处理对象。我也喜欢<pre>在我的转储周围输出标签,这样在浏览器中更容易阅读,所以

echo "<pre>";
var_dump($_SESSION);
var_dump($_POST);
var_dump($_GET);
echo "</pre>";
于 2012-10-17T21:01:21.090 回答