domingo, diciembre 09, 2007

"Filtro de parámetros en PHP5"

Estaba leyendo anieto2k (desarrollador web español, muy recomendado) y comenta en un artículo la nueva forma de filtrar parámetros que nos brinda PHP5.

Transcribo los ejemplos que me parecieron más claros que lo que dice la documentación oficial sobre el tema.

Comprobar y limpiar una variable POST

PHP 4

1  
<?php
2  
if (isset($_POST["submit"])) {
3       
$submit addslashes(strip_tags($_POST["submit"]));
4  }
5  
?>



PHP 5

1  
<?php
2  
3  
if( filter_has_var  INPUT_POST ’submit’)) {
4  
5     
$submit filter_input(
6        
INPUT_POST
7        
’submit’
8        
FILTER_SANITIZE_SPECIAL_CHARS);
9  
10  }
11  
?>



Validar email

PHP 4

1  
<?php
2  
3  $valida 
ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})$",$email);
4  
5  if( !
valida ){
6     echo 
"El e-mail no es válido";
7  } else {
8     
// ...
9  
}
10  
11  
?>



PHP 5

1  
<?php
2  
if( filter_var('roberto@example.com'FILTER_VALIDATE_EMAIL )){
3     echo 
"El e-mail no es válido";
4  } else {
5     
// ...
6  
}
7  
?>



¿Alguna duda que hay que migrar urgentemente a PHP5? ;-)

6 comentarios:

pablito dijo...

Seguro que tenés razón, pero extendete para los niños:¿En qué más limpia la variable post la forma que recomendás?
Pablo Gadino

enrique_place dijo...

Estimado Pablito:

En sí no es el mecanismo que yo sugiero, es el que sugiere el propio lenguaje PHP5 ;-). Por un lado simplifica y unifica la forma de hacer validaciones, y segundo, agrega una capa más de abstracción al sacarte la responsabilidad de saber al detalle lo que tienes que hacer, ya que las funciones internamente lo resuelven.

Nuevamente, todo lo que simplifique y quite complejidad ayudan a la construcción de sistemas, si de entrada estamos agregando complejidad para situaciones típicas, habituales, repetitivas, dentro de poco tiempo el sistema será in-mantenible.

En el artículo original hay links a la sección del manual para cada comando, lo cual explica cada caso y lo que hace internamente.

SeekeR dijo...

Hola Enrique, estaba buscando blogs que trataran sobre PHP y encontré el tuyo. He leído poco pero me parece algo soberbio, mis más sinceras felicitaciones. Voy a guardarlo en mis favoritos porque creo que puedo aprender mucho, aunque yo trabajo PHP en una lógica de negocio mucho más simple (aunque también autodidacta). He creado hace poco un blog de PHP para irlo aprendiendo desde cero, gente con conocimientos muy básicos de html... nada que ver con la maravilla tecnológica que supone el tuyo. Mi más sincera admiración

enrique_place dijo...

Estimado Seeker:

Y bueno, ¿qué esperas para unirte a alguno de los proyectos libres de Surforce?

¡todos somos autodidactas! ;-)

Artux dijo...

Muy bueno tu blog, solo queria agregar que FILTER_VALIDATE_EMAIL en las versiones 5.2.x y 5.1.x de PHP no es muy seguro que digamos. Te dejo un enlace para que profundices.

Filter Newline Injection

Saludos!

Artux Scheffer

enrique_place dijo...

Estimado Artux:

Gracias por el dato, ahora lo leo ;-)