2017-02-14 5 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) "" 

Как получить пропущенные значения входного сигнала в php7 без изменения HTML кода?

+0

Я сомневаюсь, что вы можете. – ceejayoz

+6

PHP 5 ведет себя одинаково. Что вы ожидаете? 'test [0] .0' не является допустимым именем переменной. –

+1

Без «multipart/form-data» я мог бы проанализировать его вручную из «php: // input» в php5 также из $ HTTP_RAW_POST_DATA. Данные POST в этом примере: «test = 0 & test [0] .0 = 00 & test [0] .1 = 01 & test [1] .0 = 10 & test [1] .1 = 11", который отправляется браузером. –

ответ

3

$HTTP_RAW_POST_DATA был устаревшим в PHP 5.6 и полностью удалены в PHP 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]