limpieza de las variables $ _POST [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Htmlspecialchars y mysql_real_escape_string mantienen mi código PHP a salvo de la inyección? 6 respuestas

Estoy tratando de encontrar una manera de limpiar fácilmente todas las variables POST y GET con una sola función. Aquí está la función en sí:

//clean the user's input
function cleanInput($value, $link = '')
{
    //if the variable is an array, recurse into it
    if(is_array($value))
    {
        //for each element in the array...
        foreach($value as $key => $val)
        {
            //...clean the content of each variable in the array
            $value[$key] = cleanInput($val);
        }

        //return clean array
        return $value;
    }
    else
    {
        return mysql_real_escape_string(strip_tags(trim($value)), $link);
    }
}

Y aquí está el código que lo llamaría:

//This stops SQL Injection in POST vars
foreach ($_POST as $key => $value)
{
    $_POST[$key] = cleanInput($value, $link);
}

//This stops SQL Injection in GET vars
foreach ($_GET as $key => $value)
{
    $_GET[$key] = cleanInput($value, $link);
}

Para mí esto parece que debería funcionar. Pero por alguna razón, no devolverá los arreglos de algunas casillas de verificación que tengo en un formulario. Siguen saliendo en blanco.

He probado mi código sin la función anterior y funciona bien, solo quiero esa seguridad adicional.

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta