2012-12-14 83 views
2

我想知道是否有可能获取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> 

任何输入被理解。很明显,这个问题更多地基于“这是可能的吗?”而不是“这是务实的吗?”。

谢谢。

回答

1

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

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

对于http_post_data你必须给data为字符串。如果您想使用阵列,请改为使用http_post_fields

+0

谢谢,这工作。 – Matthew2468

2

你几乎在那里!试试这个:

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