2017-02-14 79 views
2

閱讀POST數據提交這份表格:在PHP7

<?php 
var_dump($_POST); 
var_dump(file_get_contents("php://input")); 
?> 
<form method="post" enctype="multipart/form-data"> 
<input name="test" value="0"> 
<input name="test[0].0" value="00"> 
<input name="test[0].1" value="01"> 
<input name="test[1].0" value="10"> 
<input name="test[1].1" value="11"> 
<input type="submit"> 
</form> 

結果:

array(1) { 
    ["test"]=> 
    array(2) { 
    [0]=> 
    string(2) "01" 
    [1]=> 
    string(2) "11" 
    } 
} 
string(0) "" 

我要如何在不改變的HTML代碼中PHP7缺少的輸入值?

+0

讓他們我懷疑你能。 – ceejayoz

+6

PHP 5的行爲相同。你能指望什麼? 'test [0] .0'不是有效的變量名稱。 –

+1

沒有「multipart/form-data」,我可以從php5中的「php:// input」手動解析它,也可以從$ HTTP_RAW_POST_DATA解析。 本例中的POST數據是瀏覽器提交的「test = 0&test [0] .0 = 00&test [0] .1 = 01&test [1] .0 = 10&test [1] .1 = 11」。 – 2017-02-14 14:41:36

回答

3

$HTTP_RAW_POST_DATA棄用PHP 5.6PHP 7.0完全除去。

你必須改變你的html代碼。

<input name="test[0][0]" value="00"> 
<input name="test[0][1]" value="01"> 
<input name="test[1][0]" value="10"> 
<input name="test[1][1]" value="11"> 

然後通過

$_POST['test'][0][0]