• Publicidad

Problema al enviar formulario

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

Problema al enviar formulario

Notapor _valo_ » 2005-10-26 10:24 @475

Saludos, y enhorabuena por el foro.

El problema que tengo es que al intentar enviar los datos de un formulario hecho en HTML a un correo me manda solo el primer campo y su valor así:

Nombre de Centro : Ejemplo
Direccion


Poniéndome solo el primer campo del formulario, su valor y después el nombre del segundo campo pero no me envía nada más.

El formulario está en HTML y también validado en HTML, el proceso de envío a un correo lo realizo con el archivo correo.cgi que es un script en Perl.

Espero haberme explicado bien, os pongo el código ya que no encontré manera de adjuntar el archivo en Perl.

Muchísimas gracias a todos y a todas por adelantado.

Ahí va el código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. $backurl = "http://www.ceida.org/form/form.htm";
  4. $backname = "Formulario";
  5. $mailprog = '/usr/lib/sendmail';
  6. $mail = meri\@yahoo.es';
  7.  
  8. read(STDIN, $namevalues, $ENV{'CONTENT_LENGTH'});
  9. open (MAIL, "|$mailprog $mail") || die "No se puede abrir $mailprog!\n";
  10.  
  11. print MAIL ("To: $mail\n");
  12. print MAIL ("From: Usuario de Internet\n");
  13. print MAIL ("Subject: Datos de formulario\n\n");
  14.  
  15. # Procesar informacion para llenar la forma
  16. @namevalues = split(/&/, $namevalues);
  17. foreach $namevalue (@namevalues) {
  18. ($name, $value) = split(/=/, $namevalue);
  19. $name =~ tr/+/ /;
  20. $value =~ tr/+/ /;
  21. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  22. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  23. $INPUT{$name} = $value;
  24. unless ($value eq "") {
  25. print MAIL ("$name: $value\n");
  26. }
  27. }
  28. close (MAIL);
  29.  
  30. print ("Content-Type: text/html\n\n");
  31. print ("<html><head><title>Gracias</title></head>\n");
  32. print ("<body><h1>Gracias por su cooperacion</h1>\n");
  33. print ("La informacion ha sido enviada, esta es la forma que envio:<hr>\n");
  34.  
  35. foreach $namevalue (@namevalues) {
  36. ($name, $value) = split(/=/, $namevalue);
  37. $name =~ tr/+/ /;
  38. $value =~ tr/+/ /;
  39. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  40. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  41. $INPUT{$name} = $value;
  42. unless ($value eq "") {
  43. print ("$name: $value<br>\n");
  44. }
  45. }
  46.  
  47. print ("<hr>\n");
  48. print ("<a href=\"$backurl\">Regresar a $backname</a><hr>\n");
  49. print ("</body></html>\n");
  50.  
  51. exit;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Perdonar por copiar el código.
_valo_
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2005-10-26 10:14 @468

Publicidad

Notapor monoswim » 2005-10-26 11:24 @516

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # Procesar información para llenar la forma
  2. @namevalues = split(/&/, $namevalues);
  3. foreach $namevalue (@namevalues) {
  4. ($name, $value) = split(/=/, $namevalue);
  5. $name =~ tr/+/ /;
  6. $value =~ tr/+/ /;
  7. $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  8. $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  9. $INPUT{$name} = $value;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Esa entrada de datos es errónea, fíjate en la sección de tutoriales que tiene uno sobre cómo ingresar los datos desde Perl... Ya sea manualmente o con el módulo CGI...

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor _valo_ » 2005-10-27 04:38 @235

Buenas, ante todo gracias por tu respuesta, estuve echándole un ojo a los tutoriales que me mencionas y probé a hacer los cambios que consideraba según los tutoriales que leí, pero no consigo que vaya o me sigue funcionando como antes o no funciona.

Según me comentas el problema es a la hora de pedir los datos del formulario, pues seguiré mirando a ver qué sucede pero estuve mirando en el tutorial de enviar datos a documentos por el método y ni aun así. Bueno, seguiré probando.

Muchísimas gracias por la ayuda y saludos a todos y a todas.
_valo_
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2005-10-26 10:14 @468

Notapor monoswim » 2005-10-27 07:33 @356

Bueno, inténtalo y si no lo consigues mándame el script por correo a monoswim ARROBOTOTA hotmail.com que lo modifico y te lo mando cuando ya funcione... ¡je,je!

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires


Volver a Básico

¿Quién está conectado?

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

cron