• Publicidad

Mandar datos del formulario a otro cgi

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Re: Mandar datos del formulario a otro cgi

Notapor explorer » 2010-05-11 10:06 @463

Cuando se hace un redirect(), NO se debe emitir ningún código salvo ese. Ni HTML ni headers(), ni nada de nada. Estás haciendo una redirección, así que no tiene sentido pintar ningún código HTML. Le estás diciendo al navegador que haga una petición HTTP a otra dirección.

Aparte de eso, es difícil saber qué pasa, sin ver los códigos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: Mandar datos del formulario a otro cgi

Notapor marcmb » 2010-05-11 10:20 @472

Creo que ya sé cual es el problema, pero no sé cómo solucionarlo.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. use CGI qw(:standard :form);
  4. use CGI::Carp qw(fatalsToBrowser);  # me parece que este es el problema
  5. use Encriptador;
  6. use Galleta;
  7. use strict;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Porque justamente después escribo un formulario pidiendo los datos (nombre de usuario/contraseña) y después de leerlos hay un if:($nom es el nombre de usuario)

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
 if (($paraulapas eq $paraulanou)&&($paraulanou ne ''))
 {
 my $id = escribirG($nom);#Escribe la galleta y retorna el usuario
 print '<script type="text/JavaScript">','parent.menu.location="menu.cgi?',$id,'"','</script>';
 print '<script type="text/JavaScript">','parent.principal.location="/identificado.html"','</script>';
 }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Esto es lo que tengo en JavaScript y me gustaría poder cambiar, pero al usar CGI::Carp cuando pongo print redirect('laurl'); hace lo que comentaba antes, y si le pongo Location me imprime el código tal cual. ¿Tu crees que haciendo un módulo para redireccionar funcionaría? Porque de momento tengo que dejarlo en JavaScript...
Avatar de Usuario
marcmb
Perlero nuevo
Perlero nuevo
 
Mensajes: 55
Registrado: 2010-05-03 07:42 @362
Ubicación: Girona

Re: Mandar datos del formulario a otro cgi

Notapor marcmb » 2010-05-11 11:25 @517

Bueno, me parece que la opción sería quitar CGI::Carp y listos, pero me imagino que tiene que haber otra solución.
Avatar de Usuario
marcmb
Perlero nuevo
Perlero nuevo
 
Mensajes: 55
Registrado: 2010-05-03 07:42 @362
Ubicación: Girona

Re: Mandar datos del formulario a otro cgi

Notapor explorer » 2010-05-11 12:09 @547

La misión de CGI::Carp es la de volcar los mensajes de error y advertencias a la página HTML, además de a los registros de actividad (log) del servidor web.

Si algo anda mal, entonces CGI::Carp lo mostrará en pantalla.

Y repito: si un cgi debe devolver al usuario un redirect(), ese cgi no debe escribir ni cabeceras ni código HTML no nada más que el propio redirect().

Si CGI::Carp interfiere en el funcionamiento de redirect(), pues, obviamente, lo quitas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Mandar datos del formulario a otro cgi

Notapor marcmb » 2010-05-11 12:50 @576

Es la solución, quitarlo...
Lo que te decía antes es que escribía redirect() entre el código HTML, ya que el if() estaba allí, no que escribiera código HTML dentro del redirect(), me habré explicado mal.

Muchas gracias, explorer.
Avatar de Usuario
marcmb
Perlero nuevo
Perlero nuevo
 
Mensajes: 55
Registrado: 2010-05-03 07:42 @362
Ubicación: Girona

Anterior

Volver a Básico

¿Quién está conectado?

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