Validación de datos = Determinar si los datos están en la forma adecuada.
Desinfección de datos = Eliminar cualquier carácter ilegal de los datos.
La extensión de filtro
Los filtros se utilizan para validar y desinfactar entradas externas
La extensión de filtro PHP tiene muchas de las funciones necesarias para verificar la entrada del usuario, y está diseñado para hacer que la validación de datos sea más fácil y rápida.
La function filter_list() se utiliza para enumerar lo que oferece la extension del filtro
...ejemplo de codigo
<!DOCTYPE html> <html> <head> <style> table, th, td { border: 1px solid black; border-collapse: collapse; } th, td { padding: 5px; } </style> </head> <body> <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> </body> </html>
Salida
Filtro Name | Filtro ID |
---|---|
int | 257 |
Boolean | 258 |
float | 259 |
validate_regexp | 272 |
validate_domain | 277 |
validate_url | 273 |
validate_email | 274 |
validate_ip | 275 |
validate_mac | 276 |
string | 513 |
stripped | 513 |
encoded | 514 |
special_chars | 515 |
full_special_chars | 522 |
unsafe_raw | 516 |
517 | |
url | 518 |
number_int | 519 |
number_float | 520 |
magic_quotes | 521 |
callback | 1024 |
¿Por qué usar filtros?
Muchas aplicaciones web reciben información externa. La entrada/los datos externos pueden ser:
- Entrada del usuario desde un formulario
- cookies
- datos de servicios web
- Variables del servidor
- Resultados de la consulta de la base de datos
¡Siempre debe validar los datos externos!
¡Los datos enviados no válidos pueden generar problemas de seguridad y romper su página web!
¡Al usar filtros PHP puede estar seguro de que su aplicación obtiene la entrada correcta!
Función PHP filter_var()
La function filter_var() valida y desinfecta los datos
La function filter_var() filtra una sola variable con un filtro especificado
Se necessitan dos datos:
- La variable que desea comprobar
- El tipo de cheque a utilizar
Desinfectar una String
El seguiente ejemplo utiliza la function filter_var() para eliminar tods las etiquetas HTML de una string
<!DOCTYPE html> <html> <body> <?php $str = "<h1>Hello World!</h1>"; $newstr = filter_var($str, FILTER_SANITIZE_STRING); echo $newstr; ?> </body> </html>
Salida: Hello World!
Validar un entero
Vamos usar la function filter_var() para validar si la variable $int es entero o no
Ejemplo de codigo
<?php $int = 100; if (!filter_var($int, FILTER_VALIDATE_INT) === false) { echo("El entero es valido"); } else { echo("El intero no es valido"); } ?>
filter_var() y problema con el cero (0)
Para resolver este problema utilize el seguiente codigo:
<?php $int = 0; if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) { echo("Intero es valido"); } else { echo("Intero no es valido"); } ?>
Validar una dirección IP
Continuamos usando la function filter_var() para validar una IP
ejemplo de codigo
<?php $ip = "127.0.0.1"; if (!filter_var($ip, FILTER_VALIDATE_IP) === false) { echo("$ip El IP es valido"); } else { echo("$ip El IP no es valido"); } ?>
validar una dirección de correo electrónico
La function filter_var() es utilizada en el seguiente ejemplo, primero para eliminar cualauer caracter invalido
Segundo para validar el correo electronico
<?php $email = "juan.carlos@example.com"; // 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 es valido"); } else { echo("$email no es valido"); } ?>
Desinfectar y validar una URL
Igual que anterormente vamos usar la function filter_var()
- Primero para eliminar cualquier caracter extrano
- Segundo para confirmar si la $url es correcta
<?php $url = "https://frioyelectronica.blogspot.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"); } ?>
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias