Saat menggunakan filter_input
, aku'm tidak mampu menarik di POSTING
variabel array. POST
input:
type => 'container',
action => 'edit',
data[display] => 1,
data[query_limit] => 100
Saya dapat mengakses data
variabel $_POST
superglobal dengan benar sebagai array, tapi filter_input
fungsi mengembalikan apa-apa:
$data = $_POST['data']; // Working, woot
$data = filter_input(INPUT_POST, 'data'); // returns null, should return array
$action = filter_input(INPUT_POST, 'action'); // returns "edit" (correctly)
Itu tidak mungkin untuk menggunakan filter_input
untuk POST
variabel array?
Coba :
$data = filter_input(INPUT_POST, 'data', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
Link:
FILTER_REQUIRE_ARRAY
akan mengembalikan false jika POST
variabel berisi nilai skalar. Jika anda're yakin atau hanya berniat POST
variabel menerima baik skalar dan nilai array, gunakan FILTER_FORCE_ARRAY
bukan, yang akan memperlakukan setiap input sebagai array, pada dasarnya casting nilai skalar yang sesuai.
$data = filter_input(INPUT_POST, 'data', FILTER_DEFAULT, FILTER_FORCE_ARRAY);
Saya telah menggunakan FormData di javascript dan pasca bidang dengan jquery ajax. Cara saya menerima semua bidang ini adalah:
$arrFields = array('field1','field2','field2','field3', 'field4','field5');
foreach($arrFields as $field){
$params[$field] = filter_input(INPUT_POST, $field, FILTER_DEFAULT);
}
var_dump($params);
Kemudian aku akan mendapatkan semua data ke dalam sebuah array yang saya dapat lulus pada...
Atau anda dapat melakukan penyaringan dalam satu tembakan...misalnya
$MY_INPUT = filter_input_array(INPUT_POST, [
"item_id" => FILTER_SANITIZE_NUMBER_INT,
"item_string_code" => FILTER_SANITIZE_STRING,
"method" => FILTER_SANITIZE_STRING,
"item_id_array" => array(
'filter' => FILTER_SANITIZE_NUMBER_INT,
'flags' => FILTER_REQUIRE_ARRAY
)
]);
Hasil ini hampir sama dengan posting data dalam hal apa yang anda dapatkan kembali kecuali bukan dari global $_POST menjadi variabel itu akan menjadi $MY_INPUT dalam kasus ini.