note 77995 deleted from function.import-request-variables by nlopess

From: Date: Sun, 23 Sep 2007 21:16:08 +0000
Subject: note 77995 deleted from function.import-request-variables by nlopess
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-130723@lists.php.net to get a copy of this message
Note Submitter: michal dot kocarek at NO-SPAM dot seznam dot cz ---- Regarding the last post: When $_GET[$k] is compared against NULL or '' (empty string) inside the foreach loop, it should be compared only against one of the expressions or strict equality operator should be used. In this case, second part of expression ($_GET[$k] == NULL) will be *never* executed, because of NULL gets converted to empty string. Also be aware that zero is equal (==) to empty string, so if passing zeroes through the $_GET, use strict comparsion to check whether variable exist or not. Next notice: when nothing will be set into $_GET array, all comparsions will generate lot of E_NOTICE errors, because you are accessing unassigned variable. <? // Slightly modified previous example $input = array('name' => null, 'age' => 26) ; // 26 is the default age, if $_GET['age'] is empty or not set /** * Extracts $_GET variables to global scope by the definition from the $input array * @return void */ function extract_get() { global $input; if (isset($input) && is_array($input)) foreach ($input as $k => $v) { if (!isset($_GET[$k])) { $GLOBALS[$k] = $v; continue; } $getval = $_GET[$k]; if ($getval === null || $getval === '') { $getval = $v; } elseif (is_numeric($v)) { $getval = (int) $getval; } elseif (get_magic_quotes_gpc() == 1) { $getval = stripslashes_deep($getval); } $GLOBALS[$k] = $getval; unset($getval); } } /** * Performs stripslashes function recursively on the array or on the single variable * @param mixed $var Variable - can be scalar variable or the array * @return mixed Variable with slashes stripped with function stripslashes() */ function stripslashes_deep($var) { if (!is_array($var)) return stripslashes($var); foreach($var as $k => $v) { $var[$k] = stripslashes_deep($var); } return $var; } ?>

« previous php.notes (#130723) next »