Categorías destacadas
programacion php    
Artículo
0
¡votar!

 Filtrar números y cadenas en PHP

Para asegurarnos cierta tranquilidad a la hora de que los usuarios introduzcan datos por formularios utilizando PHP, es necesario verificar que los datos que introduzcan es exactamente el tipo de datos que queremos que metan, y no puedan meter otros datos que nos puedan hacer daño a nuestra aplicación.

Para verificar los datos, si utilizas un framework como puede ser Zend Framework, esta dispone de métodos que nos facilitan estas acciones, pero si no utilizas ningún framework, entonces debes de utilizar otros mecanismos.

Validad números

Para asegurarnos de que lo que se ponga en un campo de entrada solo sean números, podemos utilizar la siguiente expresión regular, que nos permitirá eliminar todos los caracteres que no sean números de la cadena. Lo que si permitirá será la entrada de números negativos.

$output = preg_replace("/[^0-9-.]/", "", $data);


Eliminar o mostrar tags HTML

Si quieres eliminar todos los tags de HTML de la cadena, puedes utilizar la función strip_tags

$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);


Sin embargo, si quieres que se muestren etiquetas html pero que no afecten a nada, entonces lo que debes de hacer es utilizar es la función htmlspecialchars

$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>


Filtrando cadenas MySQL

Para filtrar cadenas antes de ser enviadas a consultas MySQL, se puede utilizar la función mysql_real_escape_string . De esta forma nos evitamos problemas por injección de código.

$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));


Utilizar filter_input

Si utilizas $_GET['id'] puedes utilizar esta alternativa y de paso filtrar valores al mismo tiempo

$itemId = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_SPECIAL_CHARS);


Tú también puedes utilizar INPUT_POST, INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV

Si utilizas algún otro método para validar datos, te invitamos desde aquí a que lo compartas con nosotros.

Vía: Readwriteweb
   
Publicado por:
angel carrero
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon