datos Validación = determinar si los datos están en la forma apropiada.
Desinfección de datos = Eliminar cualquier carácter ilegal de los datos.
La extensión de PHP Filtrar
filtros PHP se utilizan para validar y desinfectar entrada externa.
La extensión de filtro PHP tiene muchas de las funciones necesarias para el control de entrada del usuario, y está diseñado para hacer la validación de datos más fácil y rápido.
El filter_list() función se puede utilizar para enumerar lo que ofrece la extensión filtro de PHP:
Ejemplo
<table>
<tr>
<td>Filter Name</td>
<td>Filter ID</td>
</tr>
<?php
foreach (filter_list()
as $id =>$filter) {
echo '<tr><td>' .
$filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
Ejecutar ejemplo » ¿Por qué utilizar filtros de búsqueda?
Muchas aplicaciones web reciben de entrada externa. Datos de entrada / externos pueden ser:
- La entrada del usuario de un formulario
- Cookies
- datos de servicios web
- las variables del servidor
- resultados de la consulta de base de datos
Siempre debe validar los datos externos!
los datos presentados no válidos pueden conducir a problemas de seguridad y romper su página web!
Mediante el uso de filtros de PHP puede estar seguro de que su aplicación obtiene la entrada correcta!
PHP filter_var() Función
El filter_var() la función tanto validar y desinfecte datos.
El filter_var() función filtra una sola variable con un filtro especificado. Se necesitan dos piezas de datos:
- La variable que desea comprobar
- El tipo de verificación para utilizar
Desinfectar una cadena
En el siguiente ejemplo se utiliza la filter_var() función para quitar todas las etiquetas HTML de una cadena:
Ejemplo
<?php
$str = "<h1>Hello World!</h1>";
$newstr
= filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Ejecutar ejemplo » Validar un número entero
El ejemplo siguiente utiliza la filter_var() función para comprobar si los $ int variable es un número entero. Si $ int es un entero, la salida del código anterior será: "Integer is valid" . Si $ int no es un entero, la salida será: "Integer is not valid" :
Ejemplo
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) ===
false) {
echo("Integer is valid");
} else {
echo("Integer is not
valid");
}
?>
Ejecutar ejemplo » Consejo: filter_var() y el problema con 0
En el ejemplo anterior, si $ int se establece en 0, la función anterior devolverá "Integer is not valid" . Para resolver este problema, utilice el código abajo:
Ejemplo
<?php
$int = 0;
if (filter_var($int,
FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) ===
false) {
echo("Integer is valid");
} else {
echo("Integer is not
valid");
}
?>
Ejecutar ejemplo » Validar una dirección IP
En el siguiente ejemplo se utiliza la filter_var() función para comprobar si los $ ip variable es una dirección IP válida:
Ejemplo
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) ===
false) {
echo("$ip is a valid IP address");
} else {
echo("$ip
is not a valid IP address");
}
?>
Ejecutar ejemplo » Desinfectar y validar una dirección de correo electrónico
En el siguiente ejemplo se utiliza la filter_var() la función de eliminar primero todos los caracteres no válidos de la variable $ correo electrónico, a continuación, comprobar si se trata de una dirección de correo electrónico válida:
Ejemplo
<?php
$email = "[email protected]";
// Remove all illegal
characters from email
$email = filter_var($email,
FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) ===
false) {
echo("$email is a valid email address");
} else {
echo("$email
is not a valid email address");
}
?>
Ejecutar ejemplo » Desinfectar y validar una URL
En el siguiente ejemplo se utiliza la filter_var() la función de eliminar primero todos los caracteres no válidos desde una dirección URL, a continuación, comprobar si $ url es una URL válida:
Ejemplo
<?php
$url = "http://www.w3ii.com";
// Remove all illegal characters from a url
$url = filter_var($url,
FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) ===
false) {
echo("$url is a valid URL");
} else {
echo("$url
is not a valid URL");
}
?>
Ejecutar ejemplo » PHP completa filtro de referencia
Para una referencia completa de todas las funciones de filtro, vaya a nuestra completa PHP filtro de referencia. Compruebe cada filtro para ver qué opciones están disponibles y banderas.
La referencia contiene una breve descripción y ejemplos de uso, para cada función!