2012-12-14 52 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; 
}