Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

hosting en interdominios
136 lecturas y 5 respuestas
  • Cerrado

    Boca de Pez Boca de Pez
    6

    Os pido ayuda con un cgi para formulario HTML

    Buenas a todo el mundo. Primero quiero presentarme, soy ignorante en temas informáticos, y lo que sé lo he aprendido digamos "a lo burro" por necesidades de mi trabajo como documentalista en el Consejo Superior de Investigaciones Científicas. A trancas y barrancas, y con muy poco apoyo informático, he desarrollado y mantengo la web de la red de bibliotecas de mi institución. En más de una ocasión he tenido que apañármelas con cgis para formularios de la web, pero ahora me encuentro con caso diferente, ya que tengo que hacer un cgi para una máquina Linux, que está en una empresa de hosting de sitios web.

    La pregunta que voy a hacer ya la ha formulado aquí un compañero del foro, le pedí que lo hiciera porque me corría mucha prisa. Ahora la vuelvo a repetir, y por favor os pido que me respondáis en un nivel bajito, ya que yo sé muy poco de perl.

    He hecho los cambios que me indicó amablemente bocadepez, así que os vuelvo a copiar aquí mi cgi "corregido", y el formulario. El hosting es generalista, no tengo otra opción de momento.

    Muchas gracias a todos, me haríais un gran favor si pudiéseis echarme una mano con esto, que me tiene ya desesperada.

    Ah, y quiero deciros que entro en este foro que sé que está por encima de mi nivel, porque en los de principiantes nadie me contesta.

    Este es el formulario:

    enviar a INéDITO

    ..Nombre

    ..., E-mail

    ...............................................................Web, blog...

    Título de la obra que adjuntas

    Si la obra no es tuya:

    .....Autor

    .....Título

    Dónde ha aparecido o ha sido publicada con anterioridad

    .................................................Adjunta aquí el fichero

    ...............................................................Comentarios

    Y este es el cgi: (sé que la línea progmail está mal, pero no sé cómo he de escribirla)

    #!/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=\"iso-8859-1\"\n";

    print SALIDA "To: manuellopezrey\@gmail.com\n";

    print SALIDA "Reply-to: $FORM{'email'} ($FORM{'nombre'})\n";

    print SALIDA "Subject: Enviar a Inedito\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 "

    print "\n";

    print "\n";

    print "\n";

    print "\n";

    print " ";

    print " \n";

    print " \n";

    print "

    Tu formulario se ha enviado correctamente. Muchas gracias.

    \n";

    print "\n";

    print "\n";

    Este tema es antiguo y puede contener información obsoleta. Abre un nuevo tema para publicar tu mensaje.
    • Cerrado

      Por favor, no abras dos hilos para comentar el mismo…

      Por favor, no abras dos hilos para comentar el mismo problema. Seguramente, no te han contestado, porque aún no ha entrado nadie que sepa de formularios HTML, o que haya estado de vacaciones, pero...., seguramente alguien te eche una mano, en el otro hilo.

      Cierro este, para que no haya duplicación de información en el foro.

      Un saludo :)