when recursion happens, you return the sanitized value, but never store it ;)
zooming@xxxxxxxxxxx wrote:
I'm trying to sanitize my user input. My sanitize function does not work if I send a variable that's an array. I'm using recursion to go through the array. The example below shows that $_POST['city'] works but $_POST['user'] doesn't work. The array comes back blank.
Anyone see what's wrong with my code?
OUTPUT:
Array ( [city] => New York [user] => )
CODE:
<?php
function sanitize($userInput = '') { if ( is_array($userInput) ) { foreach ( $userInput as $key => $value ) { sanitize( $value ); } } else { if ( get_magic_quotes_gpc() ) { return trim( $userInput ); } else { return trim( addslashes($userInput) ); } } }
$_POST['city'] = 'New York'; $_POST['user']['firstName'] = 'Bob'; $_POST['user']['lastName'] = 'Smith'; $_POST['user']['country'] = 'USA';
foreach ( $_POST as $key => $value ) { $_POST[$key] = sanitize( $value ); }
echo '<pre>'; echo print_r($_POST); echo '</pre>';
?>
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php