BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Formulario

majara

Saludos a todos. A ver si alguien puede ayudarme

Cuestión: tengo un formulario en una página web, y su cgi correspondiente. Están alojados en una máquina Linux. Pero por más vueltas que le doy no consigo que funcione. Ya le he dado permisos de ejecución al cgi con chmode (755), y todo lo que me han dicho los administradores, pero debe haber algún error que se me escapa.

Adjunto el formulario html y el cgi de los c.............

ESTE ES EL CGI

-----------------------------------------------------------------------------------

#!/usr/bin/perl

# Definicion del programa para enviar correo, debe dejarse sin cambios
$progmail = '/usr/sbin/sendmail';

#Usuario al que se enviaran los mensajes. Debe poner su alias de correo electronico
$ destino = 'manuellopezrey@gmail.com';

#Indica que se trata de un documento HTML
print "Content-type: text/html\n\n";

# Obtiene la entrada
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

#Divide las variables entre nombre y valor
@pairs = split(/&/, $buffer);

# Obtiene todas las variables y sus valores
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);

$value =~ tr/+//;
$value = ~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}

# Ahora enviamos el mail al $destino
open (SALIDA, "|$progmail $destino") || die "No puedo abrir $progmail!\n";
print SALIDA "Content-type: text/plain; charset=\"utf-8\"\n";
print SALIDA "To: manuellopezrey\@gmail.com\n";
print SALIDA "Reply-to: $FORM{'email'} ($FORM{'nombre'})\n";
print SALIDA "Subject: Enviar a Inedito\n\n";
print SALIDA "-----------------------------------------------------------------------------\n";
print SALIDA "Nombre: $FORM{'nombre'}\n";
print SALIDA "E-mail: $FORM{'email'}\n";
print SALIDA "Web, blog...: $FORM{'web'}\n";
print SALIDA "Titulo de la obra que adjuntas: $FORM{'titulo'}\n";
print SALIDA "-----------------------------------------------------------------------------\n";
print SALIDA "Si la obra no es tuya\n";
print SALIDA "Autor: $FORM{'autor'}\n";
print SALIDA "Titulo: $FORM{'titulo2'}\n";
print SALIDA "Dónde ha aparecido o ha sido publicada con anterioridad: $FORM{'donde'}\n";
print SALIDA "Adjunta aquí tu fichero: $FORM{'file'}\n";
print SALIDA "Comentarios: $FORM{'comentarios'}\n";

close (SALIDA);

print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n";
print "n";
print "<head>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n";
print "<!-- InstanceBeginEditable name=\"doctitle\" -->\n";
print "<TITLE>\n";
print "Enviar a Inedito\"n";
print " <!-- Plantilla - Etiquetas meta y link del head -->";
print " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
print " </head>\"n";
print " <body>\"n"
print "<h2>Tu formulario se ha enviado correctamente. Muchas gracias.</h2>\n";
print "</body>\n";
print "\n";
print "</html>\n";

-----------------------------------------------------------------------------------

Y aqui podeis ver el formulario (descargandolo)

(link roto)

BocaDePez

A la próxima, no uses un alojamiento público de ficheros generalista, sino uno especializado en imágenes, para que se puedan ver sin descargarlas.

(link roto)

BocaDePez

Del primer vistazo, estas líneas están mal, ¡revisa la sintaxis!

print "Enviar a Inedito\"n";

print " \"n";
print "

\"n"

Y esta sobra:

print "\n";

BocaDePez

Otra que sobra al principio de la respuesta: print "n";

Además ten en cuenta que no hay retornos de carro en los títulos de una página HTML y que se debe usar < T I T L E / > para cerrarlo

¿Demasiado corta-pega sin entender PERL o HTML? :|

🗨️ 10
BocaDePez

Perdón ... < / T I T L E >

(quita espacios, obviamente, el parser de BandaAncha no deja ponerlo bien)

🗨️ 9
majara

Gracias por las respuestas, compañero.

Ya he hecho los cambios que me dices, pero el servidor tarda en pillar los cambios, por lo cual tendre que esperar a ver. Ya te contaré cosas :-/

Con el HTML me voy defendiendo (modestamente hablando), pero de PERL ni pajolera idea :( :D. Vamos sobreviviendo como podemos

Salu2

🗨️ 8
BocaDePez

¿Cómo que "el servidor tarda en pillar los cambios"? ¿Por qué no es instantáneo? Es un fichero Perl, no es una aplicación Java que necesita recargarse.

Que yo sepa (corregidme si estoy equivocado) el fichero .pl se ejecuta en tiempo real y no se cachea, ¿no?

🗨️ 7
BocaDePez
BocaDePez
🗨️ 5
BocaDePez
BocaDePez
BocaDePez
BocaDePez
🗨️ 1