El filter_input() es una función incorporada en PHP que se usa para obtener la variable externa específica por nombre y filtrarla. Esta función se usa para validar variables de fuentes no seguras, como la entrada del usuario desde un formulario. Esta función es muy útil para prevenir alguna amenaza potencial a la seguridad como la Inyección SQL.
Sintaxis:
filter_input( $type, $variable_name, $filter, $options)
Parámetros: esta función acepta cuatro parámetros, como se mencionó anteriormente y se describe a continuación:
- $type: Es un parámetro obligatorio y se usa para verificar el tipo de entrada. La lista de filtros son:
- ENTRADA_GET
- ENTRADA_POST
- ENTRADA_COOKIE
- ENTRADA_SERVIDOR
- ENTRADA_ENV
- $variable_name: Es un parámetro requerido. Se utiliza para guardar el nombre de la variable que se va a comprobar.
- $filtro: Es un parámetro opcional. Contiene el nombre o ID del filtro. Si no se establece este parámetro, se utiliza FILTER_DEFAULT.
- $opciones: es un parámetro opcional y se usa para especificar uno o más indicadores/opciones a usar. Comprueba posibles opciones y banderas en cada filtro. Si se aceptan las opciones de filtro, se pueden proporcionar banderas en el campo «banderas» de la array.
Valor devuelto: Devuelve el valor de la variable en caso de éxito o Falso en caso de fallo. Si el parámetro no está configurado, devuelve NULL. Si se usa el indicador FILTER_NULL_ON_FAILURE, devuelve FALSO si la variable no está configurada y NULL si falla el filtro.
Ejemplo 1:
<?php // PHP program to validate email using filter if (isset($_GET["email"])) { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL) === false) { echo("Valid Email"); } else { echo("Invalid Email"); } } ?>
Producción:
Valid Email
Ejemplo 2:
<?php // Input type:INPUT_GET input name:search // filter name:FILTER_SANITIZE_SPECIAL_CHARS $search_variable_data = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS); // Input type:INPUT_GET input name:search // filter name:FILTER_SANITIZE_ENCODED $search_url_data = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED); echo "Search for $search_variable_data.\n"; echo "<a href='?search=$search_url_data'>Search again.</a>"; ?>
Producción:
Search for tic tac & toc. Search again.
Referencias: http://php.net/manual/en/function.filter-input.php