Página 1 de 1

Validar formulario

NotaPublicado: 2012-10-12 08:29 @395
por hippo
¡¡Muy buenas!! Espero que me puedan ayudar con mi problema :mrgreen:

Pues resulta que tengo un formulario que funciona como login, y al validar el acceso lo hago desde ese mismo fichero. Entonces, si es erróneo me sale el error, pero si es correcto me gustaría que me enviara a otra página.

¿¿Cómo puedo hacerlo??

Saludos y gracias de antemano :D

Re: Validar formulario

NotaPublicado: 2012-10-12 09:26 @435
por explorer
Bienvenido a los foros de Perl en Español, hippo.

Podrías usar el método redirect() del módulo CGI:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print  $q->redirect('http://somewhere.else/in/movie/land');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


O podrías integrar la salida del archivo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use CGI ':standard';
  2.  
  3. # ...
  4.  
  5. # aquí llegamos si es correcta la identificación
  6. undef $/;                             # lectura del archivo de una sola vez
  7. open my $HTML, '<', 'inicial.html';   # lo abrimos
  8. print
  9.     header(),                         # cabecera HTTP de respuesta al navegador
  10.     <$HTML>,                          # leemos el archivo del disco y lo mandamos al navegador
  11.     ;
  12. close $HTML;                          # cerramos
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Seguro que hay más maneras...

Re: Validar formulario

NotaPublicado: 2012-10-12 09:52 @453
por hippo
Hola, gracias por tu ayuda.

He usado el método redirect() y me sale lo siguiente:

Status: 302 Found Location: loquesea.pl

y no me cambia el location ¿qué puede ser?

Re: Validar formulario

NotaPublicado: 2012-10-12 10:16 @470
por explorer
A redirect() le tienes que pasar la URL de la dirección destino.

Lo que te sale es lo que hay que enviar (con el print()) al navegador del usuario.

Re: Validar formulario

NotaPublicado: 2012-10-12 10:33 @481
por hippo
Lo he puesto así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use CGI;
  2.  
  3. $form = new CGI;
  4.  
  5. print $form->redirect('fichero.pl');
  6.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Está mal?

Re: Validar formulario

NotaPublicado: 2012-10-12 14:18 @637
por explorer
Debes poner la URL completa:

print $form->redirect('http://mi.servidor/ruta_cgi/fichero.pl');

Re: Validar formulario

NotaPublicado: 2012-10-12 16:10 @715
por hippo
Bueno al final lo he solucionado... pero ahora me surge otro problema...

¿Cómo puedo codificar una URL con datos GET, para después decodificarla en el otro fichero?

He visto que existe uri_escape() pero la verdad es que no me aclaro.

Me gustaría que al redireccionar a esa página lo pase así:

fichero2.pl?name=pepe... -> esto codificado

Re: Validar formulario

NotaPublicado: 2012-10-12 19:28 @853
por explorer
En efecto, debes usar la función uri_escape() del módulo URI::Escape.

Solo tienes que pasarle el URL que quieres codificar y te lo devuelve URL-escapado.