Recursion to sanitize user input
| From: | zooming at gamebox dot net | Date: | Fri, 08 Oct 2004 22:15:23 +0000 |
| Subject: | Recursion to sanitize user input | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-199029@lists.php.net to get a copy of this message | ||
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>';
?>