Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Ayuda script CGI

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI
Mensaje Lun May 28, 2007 4:26 pm
rklz
Perlero Nuevo
Perlero Nuevo
Registrado: 25 May 2007
Mensajes: 38
Ubicación: Rosario, Argentina
Ayuda script CGI Responder citando

Buenas perleros , soy nuevo en el foro y les mando un saludo a todos y espero que me reciban bien :$
Les comento mi problema:
Tengo un pequeño script de Perl con CGI para usar desde el navegador; tiene permisos 775; creo que no tiene ningún error (ustedes dirán). El tema es que a veces funciona y otras veces el navegador me lo quiere bajar como texto plano; no tengo idea porqué. Apache2 no tira errores en el log. Les pego el script:
¡Muchas gracias por el tiempo de leer mi post de novato y un primer gran saludo para todos!

Perl:
#!/usr/bin/perl
use CGI;
use warnings;

print "Content-type: text/html\n\n";
print "Tu direccion IP es: ";
print $ENV{'REMOTE_ADDR'};
print " \n\n";
Mensaje Lun May 28, 2007 4:42 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Bienvenido a los foros de Perl en Español.

Yo el script le veo bien, a pesar de que cargas el módulo CGI y luego no haces ningún uso de él.

Si es el servidor web el que se comporta de forma extraña, quizás sea él el causante. De todas formas... fíjate que estás diciendo en el script que vas a devolver una página html (Content-type: text/html), pero en realidad no lo haces, si no que devuelves un texto.

Prueba a cambiar el Content-type por un Content-type: text/plain. O devuelve efectivamente una página html.

También puedes probar mi CGI mínimo para comprobar si funciona el módulo CGI.
Mensaje Lun May 28, 2007 4:48 pm
rklz
Perlero Nuevo
Perlero Nuevo
Registrado: 25 May 2007
Mensajes: 38
Ubicación: Rosario, Argentina
Responder citando

Explorer : muchísimas gracias por contestar tan rápido, parece mensajería instantánea.
Probé poniendo text/plain y funcionó excepto cuando lo abro desde konqueror (uso Debian) , si lo abro desde la PC con Windows e Internet Explorer o desde Debian con Opera funciona lo más bien, ¿el navegador tiene que ver? Ahora hay algo que te pregunto de novato: el módulo CGI yo lo cargo para poder poner después "content type text/html"; ¿puedo poner lo anterior sin usar el modulo CGI?

De nuevo gracias por contestar y mil disculpas por mis preguntas noob. Hace muy poco que arranque por Perl y todavía no terminé de leer Professional perl programming, pero ya amo Perl : P

Un saludo y gracias por contestar.
Mensaje Lun May 28, 2007 5:52 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Sí que podría ser causa del navegador... pero lo normal es que el Content-type coincida con lo que realmente le pasamos. Puede que tu no veas nada en el konqueror porque realmente el navegador está intentando representar HTML, pero al no existir marcas, no sale nada. Cuando cargues la página con el konqueror, mira el código fuente de lo que estás viendo, a ver si el konqueror ha recibido al menos algo.

El módulo CGI no tiene nada que ver con los print. De hecho, podrías reescribir tu CGI a esto:

Perl:
#!/usr/bin/perl
use warnings;

print "Content-type: text/html\n\n";

print "<html>\n";
print "<head>\n";
print "<title>Respuesta</title>\n";
print "</head>\n";
print "<body>\n";
print "Tu direccion IP es: ", $ENV{'REMOTE_ADDR'}, "\n";
print "</body>\n";
print "</html>\n";
pero claro... hay que escribir mucho para una página tan pequeña. Uno de los usos del módulo CGI es el de ahorrar trabajo a la hora de generar código html. Tu nuevo código CGI queda:
Perl:
#!/usr/bin/perl

use CGI ':standard';
use warnings;

print header;
print start_html("Respuesta");
print p("Tu direccion IP es " . $ENV{'REMOTE_ADDR'});
print end_html();
que queda un poquito más claro. Pero CGI se usa para mucho más. Aquí no hay espacio ni tiempo para ver todo lo que puede hacer, así que te toca hacer un vistazo rápido por el manual. O mejor empezar por cosas sencillas de cgi. Recuerda que esta web tiene unos tutoriales sobre el tema. Y en el foro, un montón de hilos.
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group