Tengo un formulario que tiene varios campos, pero el PL únicamente me envía 3 campos, nombre, email y comentarios. No sé cómo editar el PL para que me lea y envíe los datos de los demás campos.
Los campos que necesito con los siguientes:
Nombre -*
email -*
Empresa- no lo manda
actividad- no lo manda
tel - no lo manda
ciudad - no lo manda
comentarios - *
Voy a poner acá el PL: (disculpen, creo que está un poco largo):
Using perl Syntax Highlighting
- #!/usr/bin/perl
- # Poner el archivo .pl en CGI-BIN para poder ejecutarlo
- # junto con la librería cgi-lib.pl
- require "cgi-lib.pl";
- print "Content-type: text/html\n\n";
- &ReadParse;
- $nombre = $in{'Nombre'};
- $email = $in{'email'};
- $Empresa = $in{'Empresa'};
- $actividad = $in{'activ'};
- $telefono = $in{'tel'};
- $ciudad = $in{'ciudad'};
- $coment = $in{'comentarios'};
- #Crear el mensaje con los datos de la Forma
- $now = localtime time;
- $mensaje = $now . "\n\n";
- $mensaje = $mensaje . "Nombre : " . $nombre . "\r\n";
- $mensaje = $mensaje . "Telefono : " . $telefono . "\r\n";
- $mensaje = $mensaje . "Comentarios: \r\n";
- $mensaje = $mensaje . "-----------------------------------------------------\r\n";
- $mensaje = $mensaje . $coment . "\r\n";
- $mensaje = $mensaje . "-----------------------------------------------------\r\n";
- $mensaje = $mensaje . "remitente\r\n";
- #Get user,pass,server or use defaults.
- $user = "email\@usuario.com"; # No usar la de webmaster por seguridad
- $pass = "password";
- $server = "direccion ip"; # smtp.dominio.com (no cambiar)
- $from = "mail from:<email\@usuario.com>";
- $to = "To: DESTINATARIO"; # Heder, Nombre del Destinatario
- $rcpt = "RCPT TO:<email\@usuario.com>"; # Puede ser una de yahoo etc.
- $subject = "Subject: Comentarios";
- $data = "data";
- $fin = ".";
- #This is a simple method to communicate with the server.
- use Socket; #I used this rather than Net::SMTP to make the example more clear
- #Encrypt the user and pass
- $user = encode_base64($user); #Yes the encryption for AUTH is really this easy
- $pass = encode_base64($pass); #Base 64 is not really and encryption just a translation
- #But it works!
- chomp($user); #Get rid of line ending
- chomp($pass); #Get rid of line ending
- #open a socket and begin cummunication with the server
- socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')); #set up the socket
- connect(SOCK, sockaddr_in(25, inet_aton($server))); #connect to my server on port 25
- sysread(SOCK, $Response, 1024); #Read what the server says
- send(SOCK, "ehlo dominio.com\r\n", 0); #Hello my name is ....
- #Tell the server we wish to use Authentication
- send(SOCK, "AUTH LOGIN\r\n",0); #Ask for AUTH Login
- #the Response you see now is
- #334 VXNlcm5hbWU6
- #The stuff at the end is just Username: encoded in base64
- #Send the encrypted username
- send(SOCK, $user . "\r\n", 0); #Encrypted User Name
- #The response you see now is
- #334 UGFzc3dvcmQ6
- #The stuff at the end is just Password: encoded in base64
- #send the encrypted password
- send(SOCK, $pass . "\r\n", 0); #Encrypted Pass
- #You will not get the Response
- #235 go ahead
- #A failure will return
- #535 auth failure
- #you are now loged in and could send a message to anyone you please.
- #I left out the command to send mail so that I do not get thousands
- #of messages, but I think the commands to send mail to SMTP via Sockets
- #is pretty well covered
- send(SOCK, $from . "\r\n", 0);
- sysread(SOCK, $Response, 1024);
- send(SOCK, $rcpt . "\r\n", 0);
- sysread(SOCK, $Response, 1024);
- send(SOCK, $data . "\r\n", 0);
- sysread(SOCK, $Response, 1024);
- send(SOCK, $to . "\r\n", 0);
- sysread(SOCK, $Response, 1024);
- send(SOCK, $subject . "\r\n", 0);
- sysread(SOCK, $Response, 1024);
- send(SOCK, $mensaje . "\r\n", 0);
- sysread(SOCK, $Response, 1024);
- send(SOCK, $fin . "\r\n", 0);
- sysread(SOCK, $Response, 5424);
- close(SOCK);
- if ( $Response =~ m/250 Message received/ )
- {
- print "<html>
- </head>
- <body>
- <p align=\"center\"><b><font size=\"3\">El mensaje fue enviado con Exito!</font></b></p>
- <p align=\"center\"><b>Gracias!</b></p>
- <p> </p>
- <p> </p>
- </body>
- </html>";
- }
- else
- {
- print "<html>
- </head>
- <body>
- <p align=\"center\"><b><font size=\"3\">El mensaje No pudo ser enviado !</font></b></p>
- <p align=\"center\"><b>Failed to Connect</b></p>
- <p> </p>
- <p> </p>
- </body>
- </html>";
- }
- #This is a base 64 subroutine taken from planet source code.
- #It is pretty standard. stuff.
- sub encode_base64
- {
- my $res = "";
- my $eol = $_[1];
- $eol = "\n" unless defined $eol;
- pos($_[0]) = 0; # ensure start at the beginning
- while ($_[0] =~ /(.{1,45})/gs) {
- $res .= substr(pack('u', $1), 1);
- chop($res);
- }
- $res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs
- # fix padding at the end
- my $padding = (3 - length($_[0]) % 3) % 3;
- $res =~ s/.{$padding}$/'=' x $padding/e if $padding;
- # break encoded string into lines of no more than 76 characters each
- if (length $eol) {
- $res =~ s/(.{1,76})/$1$eol/g;
- }
- $res;
- }
Coloreado en 0.009 segundos, usando GeSHi 1.0.8.4
¿Alguien me puede indicar cómo debo agregar el código para los otros campos?