2013-12-16 34 views
0

我試圖提交表單數據作爲結構

$_POST['newData'] = array(
    1 => array(p1 => 'a', p2 => 'ae', /*etc.*/), 
    2 => array(p1 => /*etc.*/) 
) 

在我的PHP應用程序將到達陣列(「newData」),它告訴我的print_r( )-命令。

因爲我通常filter_input調用表格數據(),我寫了我的計劃:

$newData = filter_input(INPUT_POST, 'newData', 
    FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); 

但是,這並不包含任何價值。 我用crong的方式使用了filter命令,還是可能在php.ini中有一些開關,我不知道?其他程序,我在另一臺服務器上以相同的方式過濾輸入數組,這就是爲什麼我認爲這可能是一個問題。

回答

1

filter_input沒有看到你加入到$_POST超全局數據,其原因是filter_input似乎要檢查的原始數據,而不是分析數據是在$_POST。同樣的事情也適用於$_GET

print(filter_input(INPUT_GET, 'foo')); // Prints "bar" 

$_GET['foo'] = 'foo'; // Sets the $_GET superglobal, but does not change the raw request data 

print(filter_input(INPUT_GET, 'foo')); // Still returns bar 

我知道你可能已經解決了這個問題,但我花了相當長的一段時間來弄清楚,我想幫助別人他們的鬥爭。