Programación GoibelaTodo sobre programación |
||
CategoriasNuevos Articulos
Nuevos Comentarios |
Validar y sanear datosJueves, 21-09-2017 08:17 - Leer comentarios - Comentar La extensión FilterEsta extensión de PHP nos expone un conjunto de funciones que nos permitirán la validación y saneamiento de datos de una forma sencilla. La funcion filter_var nos permite filtrar una variable según el filtro especificado. El orden de los parámetros es el siguiente: $var: Variable que se quiere filtrar $filter: Filtro que se desea aplicar. Será una constante numérica $options: Conjunto de opciones que modificarán el funcionamiento del filtro. Será una constante numérica o un array A continuación un listado de filtros de validación posibles: FILTER_VALIDATE_BOOLEAN Valida la variable como un booleano. FILTER_VALIDATE_EMAIL Valida la variable como una dirección de correo electrónico correcta. FILTER_VALIDATE_FLOAT Valida que la variable sea del tipo float. FILTER_VALIDATE_INT Valida la variable como un número entero. FILTER_VALIDATE_IP Valida la variable como una dirección IP. FILTER_VALIDATE_REGEXP Valida la variable contra una expresión regular enviada en la variable de opciones. FILTER_VALIDATE_URL Valida el valor coma una URL de acuerdo con la RFC 2396. A continuación el listado de filtros para sanear: FILTER_SANITIZE_EMAIL Elimina todos los caracteres execpto letras, números y !#$%&’*+-/=?^_`{|}~@.[]. FILTER_SANITIZE_ENCODED Codifica la cadena como una URL válida. FILTER_SANITIZE_MAGIC_QUOTES Aplica la función addslashes. FILTER_SANITIZE_NUMBER_FLOAT Elimina todos los caracteres excepto números, +- y opcionalmente ,.eE. FILTER_SANITIZE_NUMBER_INT Elimina todos los caracteres excepto números y los signos + -. FILTER_SANITIZE_SPECIAL_CHARS Escapa caracteres HTML y caracteres con ASCII menor a 32. FILTER_SANITIZE_STRING Elimina etiquetas, opcionalmente elimina o codifica caracteres especiales. FILTER_SANITIZE_STRIPPED Alias del filtro anterior. FILTER_SANITIZE_URL Elimina todos los caracteres excepto números, letras y $-_.+!*’(),{}|\\^~[]`<>#%”;/?:@&=. Validar y sanear un número entero php
php
php
php
Validar y sanear un número float La validación simple de un float es practicamente igual que la de un entero: php
php
La limpieza de los textos es algo muy importante y por ello tenemos varios flags que modifican el comporamiento del filtro FILTER_SANITIZE_STRING: FILTER_FLAG_NO_ENCODE_QUOTES No codificará las comillas simples ni dobles. FILTER_FLAG_STRIP_LOW Elimina caracteres cuyo varlor ASCII sea menor a 32. FILTER_FLAG_STRIP_HIGH Elimina caracteres cuyo valor ASCII sea mayor a 127. FILTER_FLAG_ENCODE_LOW Codifica caracteres cuyo valor ASCII sea mennor a 32. FILTER_FLAG_ENCODE_HIGH Codifica caracteres cuyo valor ASCII sea mayor a 127. FILTER_FLAG_ENCODE_AMP Codifica ampersands (&). A continuación algunos ejemplos: php
php
php
Es importante que todas las variables externas, es decir, que nos llegan desde el lado del cliente ($_GET, $_POST, $_COOKIE…) las obtengamos a través de esta función para ahorrarnos disgustos. En el siguiente ejemplo vemos como obtener un parámetro GET de la petición con esta función: php
El primer parámetro indica de que ámbito será extraída la variable, y puede ser uno de los siguientes valores: INPUT_GET INPUT_POST INPUT_COOKIE INPUT_SERVER INPUT_ENV Otra función relacionada y muy interesante es filter_input_array que nos permite definir una serie de validaciones para múltiples campos. Es decir, podemos hacer la validación todos los campos de un formulario en un solo paso. La definición de los campos con sus validaciones se hace mediante un array como se muestra en el siguiente ejemplo: php
ComentariosNo se permiten comentarios en este momento. |
RSS Feeds |