获取未指定的$ _POST数据

时间:2012-12-14 17:46:06

标签: php post

我想知道是否有可能在不指定密钥的情况下获取POST数据,就像使用print_r($ _ GET)一样,前提是URL中有参数。

例如,如果'my-page.php'对名为'destination-page.php'的页面执行了表单操作,但表单中的输入具有随机名称,那么'destination-page.php'将如何选择这些价值观并将它们回应出来?我尝试了print_r($ _ POST)但没有成功。

MY-page.php文件

<!DOCTYPE HTML>
<html>
<body>

<form name="foobar" method="POST" action="destination-page.php">
    Input 1: <input type="text" name="<? echo substr(md5(mt_rand()), rand(4,12)); ?>" />
    Input 2: <input type="text" name="<? echo substr(md5(mt_rand()), rand(4,12)); ?>" />
    <input type="submit" />
</form>

</body>
</html>

目的地page.php文件

<!DOCTYPE HTML>
<html>
<body>
<?
    $values_array = array();

    foreach($_POST as $val)
        $values_array[$i++] = $val;

    echo(http_post_data('http://www.foobar.com/destination-page.php', $values_array));
?>
</body>
</html>

任何输入都表示赞赏。显然,这个问题更多地基于“这可能吗?”而不是“这是务实吗?”。

谢谢。

2 个答案:

答案 0 :(得分:2)

你快到了!试试这个:

foreach($_POST as $key => $value)  {
    echo "POST " . $key . " = " . $value;   
}

答案 1 :(得分:2)

由于$_POST是一个数组,因此您也可以将其用作任何其他数组。虽然我会把循环改为

foreach($_POST as $val)
    $values_array[] = $val;

对于http_post_data,您必须将data作为字符串。如果您想使用该数组,请转而使用http_post_fields