Foros del Web » Programación para mayores de 30 ;) » Programación General »

CGI FormMail y ocultar email

Estas en el tema de CGI FormMail y ocultar email en el foro de Programación General en Foros del Web. La configuración de un formulario utilizando el CGI FormMail sería algo así ¿no? Código: <form method="POST" action="/cgi-bin/formmail.pl"> <input type='hidden' name='recipient' value='[email protected]'> <input type='hidden' name='subject' value='Solicita ...
  #1 (permalink)  
Antiguo 06/08/2010, 11:14
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
CGI FormMail y ocultar email

La configuración de un formulario utilizando el CGI FormMail sería algo así ¿no?

Código:
<form method="POST" action="/cgi-bin/formmail.pl">
<input type='hidden' name='recipient' value='[email protected]'>
<input type='hidden' name='subject' value='Solicita información'>
<input type='hidden' name='sort' value='campo1, campo2, campo3, ...'>
<input type='hidden' name='redirect' value='www.sudominio.com/gracias.html'>
<input type='hiden' name='required' value='asunto,empresa,email'>
Mi pregunta es la siguiente, si ya le estoy pasando el formulario al cgi, donde ya viene configurado el correo donde deseo recibirlo ¿por qué tengo que volver a indicarlo en la etiqueta 'recipient'?

¿No hay alguna forma de que el correo venga solo indicado dentro del CGI? Lo digo por evitar el tema del SPAM con la direccion de correo del formulario.
__________________
Blog: http://a-dream-of-dragon.blogspot.com
  #2 (permalink)  
Antiguo 06/08/2010, 11:32
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 1 mes
Puntos: 11
Respuesta: CGI FormMail y ocultar email

Hay algo mal...

* En 'redirect', te falta indicar el http://
* En 'required', es 'hidden', no 'hiden'
* En 'required', debes indicar los campos obligatorios, pero con el mismo nombre con que los has nombrado antes, así que 'asunto','empresa' y 'email' no son correctos, por que a) el campo de asunto en realidad se llama 'subject', y los campos de empresa y email no aparecen en el formulario.

La razón por la cual es necesario indicar el 'recipient' es doble: 1) para que FormMail sepa que ha sido llamado desde una web legal cuyo destinatario es legal (está registrado dentro del propio programa), y 2) porque así se puede dar servicio a múltiples dominios/usuarios con formularios distintos. FormMail debe saber qué dominios y direcciones están permitidas. Si estuviera solo indicado dentro del programa, se podría recibir correo desde cualquier otro sitio web.

Pero sobre todo, es por seguridad: las primeras versiones de FormMail no controlaban la dirección de destino, por lo que las web con este programa se convirtieron en máquinas de producción masiva de SPAM. Por ello, en las siguientes versiones era necesario indicar, por cada formulario, dentro del programa, tanto la dirección de destino (variable @allow_mail_to o @recipients) como el dominio desde donde se permitía enviar la petición (variable @referers).

Si te preocupan los robots ladrones de direcciones de correo, siempre puedes codificar la dirección de correo, en el HTML, con entidades HTML. Es una medida muy efectiva.
__________________
JF^D Perl Programming en Español
  #3 (permalink)  
Antiguo 06/08/2010, 11:43
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Respuesta: CGI FormMail y ocultar email

Perdona, tienes razón, ha sido por copiarlo deprisa, ... jejeje.

Muchas gracias por la aclaración, no tenía ni idea de que era por eso.

Miraré lo de las entidades HTML, porque si que he tenido algún problema ya con el SPAM. Muchas gracias.
__________________
Blog: http://a-dream-of-dragon.blogspot.com

Etiquetas: cgi, email, formmail
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.