noa86 escribiste:Lo he solucionado introduciendo
Using perl Syntax Highlighting
keepextras=>[qw(mode)]
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
una de las opciones que tiene FormBuilder.
Eso es... en el código que te he enlazado, verás que hay unas líneas así:
Using perl Syntax Highlighting
$form->field(name => 'rm', type => 'hidden');
$form->field(name => 'rm', value => 'mode2');
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
que ayudan a CGI::Application a guardar el modo de ejecución.
noa86 escribiste:Mi duda ahora es. Introduzco un nombre de un usuario:
Using perl Syntax Highlighting
$form->field(name => 'usuario', label => 'Nombre de usuario', size => 30,jsmessage => " * Nombre de usuario no es el correcto");
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Pero lo quiero validar de tal manera que me diga si existe otro usuario con el mismo nombre en la base de datos.
¿Sería en un nuevo sub, ya que estoy en cgi-app. Llamándome en
Using perl Syntax Highlighting
validate=>/&comprobar
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
y que el sub comprobar devuelva true o false? No sé muy bien si eso que estoy diciendo es correcto...
Viendo el código que te enlacé, el proceso es: el control lo recibe CGI::Application, ya que la aplicación está basada en ella. Luego, dentro de un
runmode (en el código, 'login'), es donde comprueba si el nombre de usuario y contraseña están bien, y si no, muestra el formulario creado con FormBuilder.
En caso de que el usuario sea correcto, el programador crea una nueva sesión, guardando en ella el parámetro 'logged-in' igual a 1. Crea una nueva página, con un nuevo
runmode, donde se le da la bienvenida al usuario. En el resto de
runmodes, se comprueba el valor de 'logged-in' para comprobar si el usuario de esa sesión está validado o no, y actuar en correspondencia.
En la página cgi-app.org, sí que aparece CGI::FormBuilder como módulo recomendado, pero de forma más "colateral": no hay ejemplos ni manuales. Y en el resto de Internet, tampoco encuentro ejemplos de C::A junto con C::F.
Los que sí recomiendan usar son los
plugins:
Es decir: la página se crea con una plantilla; con FillInForm la rellenamos a los valores anteriores o con los valores que queramos; y con ValidateRM comprobamos los valores que nos devuelve el usuario.