Bug #70263 [Opn->Nab]: filter_input_array 'add_empty' fails if query string absent

From: Date: Sat, 11 Apr 2020 13:50:02 +0000
Subject: Bug #70263 [Opn->Nab]: filter_input_array 'add_empty' fails if query string absent
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-226530@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=70263&edit=1 ID: 70263 Updated by: cmb@php.net Reported by: mike dot whipps at littlevale dot co dot uk Summary: filter_input_array 'add_empty' fails if query string absent -Status: Open +Status: Not a bug Type: Bug Package: Filter related Operating System: Linux Fedora 20 PHP Version: 5.5.28 -Assigned To: +Assigned To: cmb Block user comment: N Private report: N New Comment: Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php From the manual[1]: | If the input array designated by type is not populated, the | function returns NULL […] [1] <https://www.php.net/manual/en/function.filter-input-array.php#refsect1-function.filter-input-array-returnvalues> Previous Comments: ------------------------------------------------------------------------ [2019-11-01 13:22:38] vorbox+php at pp dot me confirmed PHP7.4.0RC5 Windows 7 32. ------------------------------------------------------------------------ [2015-08-13 22:24:32] mike dot whipps at littlevale dot co dot uk Description: ------------ filter_input_array(INPUT_GET, $filters, true) does not add empty fields to the output array if the query string is absent. It does add them correctly if even one parameter appears. Note that filter_var_array($_GET, $filters, true) does add the empty fields correctly. Test script: --------------- $getFilters = [ 'id'=>['filter'=>FILTER_VALIDATE_INT, 'flags'=>FILTER_REQUIRE_SCALAR, 'options'=>['min_range'=>1] ], 'name'=>FILTER_UNSAFE_RAW ]; echo '$_GET: <br>'; var_dump($_GET); $req = filter_input_array(INPUT_GET, $getFilters, true); echo '<hr>$req:<br>'; var_dump($req); echo '<hr>$reqGet<br>'; $reqGet = filter_var_array($_GET, $getFilters, true); var_dump($reqGet); Actual result: -------------- Execute the above script with no query string gives this result: $_GET: array (size=0) empty $req: null $reqGet array (size=2) 'id' => null 'name' => null ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=70263&edit=1

« previous php.bugs (#226530) next »