• Publicidad

Módulo validador de campos

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

Módulo validador de campos

Notapor Lor » 2011-02-08 10:18 @471

Agradecería si me pudiesen indicar si existe algún módulo en Perl que me permite chequear la validez de diferentes campos obtenidos de un formulario. Si es un date, un entero, un float, en email, etc.

Muchas gracias, :D
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Publicidad

Re: Módulo validador de campos

Notapor explorer » 2011-02-08 12:07 @546

Las claves para buscar eso en CPAN es "form" y "validator". Por ejemplo: WWW::Form, HTML::Shakan, Form::Validator::Email, HTML::FormValidator... y seguro que algunos más...

El más moderno (última actualización) es FormValidator::Lite.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Módulo validador de campos

Notapor Lor » 2011-02-10 04:55 @246

Muchas gracias, he optado por FormValidator_lite, pero tengo unos inconvenientes. Les agradecería si pudiesen ayudarme:

Suponiendo los parámetros de formulario: nombre, edad y quiero aplicarle a cada uno lo siguiente:
-nombre: que no sea nulo y que tenga una longitud no menor a 3 caracteres.
-edad: que no sea nulo y que sea un entero.

1)- ¿Cómo coloco las distintas reglas para un mismo campo? ¿Entre corchetes '[]' separados por comas?

2)- ¿Cómo evalúo para cada campo el valor resultado de cada regla aplicada?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.   my $q= CGI->new;
  2.  
  3.   my $validator = FormValidator::Lite->new($q);
  4.   my $res = $validator->check(
  5.         nombre=>     [qw/NOT_NULL/ ,/LENGTH 5 20/],   # No nulo y longitud entre 5 y 20
  6.         edad => [qw/NOT_NULL/, /INT/],
  7.          );
  8.  
  9. # ¿Cómo evalúo si el campo es o no válido?
  10. my $val_nombre= $validator->is_error($nombre);
  11. my $val_edad= $validator->is_error($edad);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4



¡¡¡¡Muchas gracias!!!! :D
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Re: Módulo validador de campos

Notapor explorer » 2011-02-10 07:21 @348

Las reglas se forman de la siguiente manera:

* si son comandos que no necesitan argumentos, se pueden poner en una lista de palabras:

nombre => [qw/NOT_NULL KATAKANA/],

* o si los comandos tienen argumentos, también se pueden separar como arrays anónimos dentro del array anónimo de la regla:

nombre => [ 'NOT_NULL', [qw/LENGTH 5 20/] ],

nombre => [ ['NOT_NULL'], [qw/LENGTH 5 20/] ],

nombre => [ ['NOT_NULL'], ['LENGTH','5','20']],
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Módulo validador de campos

Notapor Lor » 2011-02-10 19:45 @864

¡¡¡La definición de reglas funciona perfectamente!!! ¡¡¡Gracias!!!

Lo que no puedo lograr es frente a un conjunto de argumentos chequeados, diferenciar cuáles no cumplen con la regla definida y cuál es la misma. Esto me permitiría dar un mensaje al operador del error que está cometiendo.

He probado los métodos indicados pero no me funcionan.

¿ Cómo puedo lograrlo ? ¡¡¡Muchísimas gracias!!!
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Re: Módulo validador de campos

Notapor explorer » 2011-02-11 06:27 @310

No entiendo la pregunta.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Módulo validador de campos

Notapor Lor » 2011-02-11 06:50 @326

Mi pregunta es: ¿Cómo sé cuáles argumentos no fueron validados como correctos, y en qué reglas de las definidas fallaron? De esta forma le informo al operador (el que completó el formulario) los campos o argumentos que ingreso erróneamente y cómo debe cambiarlos.

Espero haber sido más precisa. ¡¡¡Muchísimas gracias por el tiempo!!! ¡¡¡Y la excelente predisposición de siempre!!!
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Re: Módulo validador de campos

Notapor explorer » 2011-02-11 07:22 @348

Todo lo tienes en el manual del módulo.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ($validator->has_error) {       # si ha ocurrido un error...

    if($validator->is_error('nombre')) {    # ¿hubo un error en la entrada 'nombre'?

        ...;
    }

    ...;

    my $errores_hashref = $validator->errors();    # Listado de todos los errores

    print $errores_hashref->{'nombre'}->{'NOT_NULL'}, "\n";    # Ver si se cumplió una de las reglas

    ...;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Incluso con la función set_message() y set_message_data() puedes crear el mensaje de error, asociado a cada regla y a cada subregla.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Módulo validador de campos

Notapor Lor » 2011-02-11 07:47 @366

Sí está en el módulo, pero ¡¡¡NO TAN BIEN explicado!!! ¡¡¡Muchas gracias!!!
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282


Volver a Módulos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 28 invitados

cron