Configurando un formulario de contactos

Diseño Web 21 junio 2009 | 70 Comentarios



Etiquetas: , , , , , ,








Este articulo es de lectura obligatoria apra todo aquel diseñador web que quiera saber como configurar un en dreamweaver para enviar desde la pagina web. En este tutorial vamos a aprender como configurar un para nuestra pagina web, desde el diseño en dreamweaver y la colocación de los campos del formulario hasta la configuración del para luego enviar el hasta el destino.

Toda pagina web debe tener un formulario de contactos, por medio del cual el visitante pueda solicitar informacion de un producto o servicio sin necesidad de enviar un email desde yahoo o outlook express. El email debe ser enviado desde el mismo formulario hasta la cuenta de correo de la persona encargada de responder los mismos.

Tener un formulario en la pagina web ayuda a que la experiencia del usuario sea agradable, esto lo hará regresar, no solamente el formulario para enviar emails de cotizacion sino porque la pagina web está mas completa y no lo haces perder el tiempo abriendo Outlook o yahoo o Gmail para enviar email solicitando informacion.

Este post es una solicitud que me hicieron recientemente, muchos diseñadores a la hora de hacer un sitio web dejan la pagina de contactos con informacion com Telefono, Email, direccion,  etc. Y, no es malo, sin embargo muchos diseñadores sobre todo al inicio, no configuran un formulario de contactos no porque no se pueda sino porque ellos mismos no saben como hacerlo.

La razón es obvia, cuando aprendes HTML en un centro tecnico de capacitacion, dentro del pensum de Diseño de Paginas Web, aprendes como hacer el formulario pero no te enseñan como editarlo y configurarlo para que el dueño del sitio web reciba en su buzón de correo la informacion que el visitante solicite a través del formulario online.

Asi que viene la pregunta ¿Como puedo hacer para que a traves de un formulario de contactos mi cliente se comunique con los visitantes del sitio?, con este tutorial te enseñaré como hacerlo.

Requisitos:

  • FormMail.pl (esta es la version modificada para que la descargues en tu ordenador).   Este es el original
  • Notepad++ (no es obligatorio, pero si recomendable para que distingas los colores dentro del codigo y sea mas fácil de modificar)
  • Ganas de trabajar
  • Una tasita de café (o varias)
  • Darle las gracias al creador de este tutorial dejando un comentario.

Ahora que ya tenemos el archivo formail y el notepad++, podemos comenzar.

Configurando el formail.pl para enviar Email

Para que los emails puedan ser enviados desde tu pagina web, es necesario que los datos sean procesados en el servidor, en HTML esto es imposible, por lo que tenemos que recurrir a aplicaciones en PERL o PHP para que procese los datos, en este tutorial vamos a ver como configurar FormMail.pl

Configurando un formulario de contactos

He subrayado en el archivo las lineas que vas a modificar (es lo unico que vas a modificar, si modificas algo mas va por tu cuenta).

Las modificaciones corresponden a:

  • tudominio.com => ¿que crees que vas a poner?
  • ip.de.tu.dominio => haz ping a tu dominio para saber cual es tu IP
  • usuario@tudominio.com => es el correo al cual enviarás la información de este formulario.

Creo que lo único que amerita un poco mas de explicación es la del IP.

¿Cómo haces para conocer el IP de tu sitio web?

Es mas sencillo de lo que parece, solo debemos hacer ping, para ello dirígete al Menú “Inicio” y en “ejecutar” escribe “cmd” (sin comillas), acto seguido te aparecerá la consola de MS-DOS y escribes “ping www.tudominio.com” (sin comillas, después de la palabra ping hay un espacio).

Configurando un formulario de contactos

Configurando un formulario de contactos

Ahora que ya tienes esos valores, puedes terminar la configuración del formulario (el que se supone que estás editando), eso es todo lo que le hacemos a nuestro archivo formmail.pl.

Ahora vamos a realizar nuestro Formulario en Dreamweaver (ya sabes, esas casillas que se rellenan para enviar el email desde la pagina web), vamos a suponer que ya tienes listo todo el sitio y solamente te falta el formulario de contactos, así que nos vamos a concentrar en los ampos del formulario.

Configurando un formulario de contactos

clic para ampliar

  1. Haz clic en la pestaña “Forms”. Para que nos muestre las herramientas propias de Formulario
  2. Clic en “form”. Para insertar la zona activa del formulario
  3. aparecerá en pantalla una linea punteada de color rojo, esta es la zona activa para el formulario, todo lo que se encuentre dentro (elementos de formulario) serán tratados dentro del formulario.

Con la zona activa definida solo falta insertar una tabla y los elementos propios del formulario:

Configurando un formulario de contactos

clic para ampliar

  1. Seleccionamos ahora la pestaña “Commons”
  2. Hacemos clic en “Table”
  3. Definimos una tabla de 2 columnas y 1 fila y el resto de parámetros como se muestra en la imagen inferior.
Configurando un formulario de contactos

Clic para ampliar

Ya casi estamos listos, falta empezar a establecer los campos que requerimos que el usuario nos envíe en su correo, datos tales como Telefono, Direccion, Email, Comentarios Adicionales.

Configurando un formulario de contactos

clic para ampliar

Los campos Email, Telefono y Direccion los insertar como campo de Texto.

Configurando un formulario de contactos

El campo de Comentarios Adicionales lo insertas como Textarea, fijate en la imagen inferior.

Configurando un formulario de contactos

Ahora insertas en la ultima linea del formulario el Boton que servirá de envío.

Configurando un formulario de contactos

Solo nos faltan un par de cositas pendientes, el formulario está casi listo para enviarse, pero falta que le insertemos unos campos Hidden que son los que van a almacenar la información y enviarla a nuestro servidor para posteriormente enviarla a nuestro buzón de correo.

  1. Ubica el cursor en la primera linea del Formulario.
  2. Haz Clic en la pestaña “Code” para ver unicamente el código.
  3. Localiza la linea <Form …> e inmediatamente debajo de esta linea escribe lo siguiente:
<input type='hidden' name='recipient' value='correo@tudominio.com' />
<input type='hidden' name='subject' value='Mensaje de saludo' />
<input type='hidden' name='sort' value='escribe el nombre de los campos del formulario' />
<input type='hidden' name='redirect' value='http://www.tudominio.com/gracias.html' />
<input type='hidden' name='required' value='email, direccion, telefono' />
<input type=’hidden’ name=’recipient’ value=’info@solucionesseo.com’ />
<input type=’hidden’ name=’subject’ value=’Contacto desde la web’ />
<input type=’hidden’ name=’sort’ value=’nombres,pais,telefono,email,sexo,motivo,comentarios’ />
<input type=’hidden’ name=’redirect’ value=’http://www.photoshopytutoriales.com/gracias.html’ />
<input type=’hidden’ name=’required’ value=’nombres,email’ />

Listo, ahora sí estamos a punto de finalizar, ubica nuevamente la etiqueta <Form …. > y dentro de ella vas a ver un atributo “action” el cual está vacío de la siguiente forma

< form … action=”" >

Dentro del action deberás escribir la URL absoluta del archivo que va a procesar nuestro formulario ( te acuerdas que ya configuramos el Formmail, ¿verdad?), este achivo deberás subirlo al servidor dentro de una carpeta de nombre cgi-bin.

Ahora como la ruta debe ser absoluta, significa que debes escribir la ruta completa del archivo dentro de las comillas del action, de la siguiente forma:

<form .... action="http://tudominio.com/cgi-bin/formulario.pl">

Si has seguido el tutorial a como debe de ser no deberías tener ningún tipo de problema.

Ya para finalizar solo me queda decir que cuando subas el archivo al servidor le debes cambiar los permisos a 755. Originalmente todos los archivos tienen permisos 644, pero el formulario.pl debe tener permisos 755.

Pd:

Obvié un campo a propósito (Nombre) eso te lo dejo de tarea para que te sirva de práctica.

Cualquier comentario hazlo aqui mismo, los comentarios son bienvenidos.

El Formulario fue elaborado con la version CS3 de Dreamweaver, te recomiendo que veas como crear un formulario en Dreamweaver CS4.

Elaborado por: Walter Alvarez





70 Responses on “Configurando un formulario de contactos”

  1. Hello, can you please post some more information on this topic? I would like to read more.

  2. carlos dice:

    excelente tuto, me queda una duda, como y a donde cambio los permisos del archivo?ojala puedas responderme

    salu2

  3. walvarez dice:

    Si ingresas por FTP al sitio, debes ir a la carpeta CGI-BIN y ubicar el archivo contactos.pl o como sea que lo hayas nombrado, haces clic derecho sobre contactos.pl y en File Attributes cambias el valor numerico a 755.

    Yo utilizo Filezilla, pero la opcion para cambiar los permisos de archivo suele llamarse "File attributes", "Change Permissons", "Chmod".

    Saludos

  4. carlos dice:

    vale master, gracias por la rápida respuesta, ese es de mozilla o me equivoco? un abrazo…

  5. carlos dice:

    aaahh… ok vale

    salu2 y gracias

  6. Jan Carlos P dice:

    tengo un problema, he hecho todo los pasos pero a la hora de enviar el formulario… Me sale como si voy a descargar el archivo… Plis ayudame, este es mi link http://jndesign.webege.com/contacto.html

    • admin dice:

      Hay dos posibles causas:
      1. No configuraste los permisos de archivo.

      Solucion:
      Via FTP cambia los permisos a 755

      Observacion: En algunos casos los clientes FTP no cambian efectivamente los permisos de carpeta o archivo, y hagamos lo que hagamos siempre se mantienen en 644 que es la opcion por defecto. En estos casos recurrimos al administrador de archivos del Cpanel y cambiamos los permisos de archivo desde ahi.

      2. Tu servidor no soporta CGI

      Si haces los cambios de permisos de archivo y aun asi el problema persiste es probable que tu servidor no soporta CGI, ante esto debes avocarte con tu proveedor.

      Nota:
      El arhivo formulario.pl debe estar dentro de una carpeta llamada “cgi-bin”

  7. snyders dice:

    me marca el siguiente error lic.
    Error: Bad/No Recipient
    There was no recipient or an invalid recipient specified in the data sent to FormMail. Please make sure you have filled in the recipient form field with an e-mail address that has been configured in @recipients. More information on filling in recipient form fields and variables can be found in the README file.
    FormMail V1.92 © 1995 – 2002 Matt Wright
    A Free Product of Matt's Script Archive, Inc.

    Hice todo segun el tuto y lo guarde como php esta bien? gracias de antemano (:

    • Dentro del archivo pl, busca el @recipients y verifica que tu email esté bien escrito (o el email de destino).

      En el archivo que tiene el formulario verifica que los campos Hidden se encuentren y que el campo HIDDEN que conetiene tu email sea el mismo que tienes en el archivo pl.

      Saludos

      Cualquier cosa avisas y te echo una mano.

  8. snyders dice:

    Muchas gracias por tu respuesta, pero ya revise todo y esta bien y no funciona me marca el mismo error, en el formmail pongo info@lolocos donde tengo que poner el recipient y luego en dreamweaver pongo el mismo mail pero no me funciona, ayuda!
    y gracias de nuevo (:

  9. El problema de Snider se resolvio, eran los espacios en blanco en los HIDDEN

  10. Revangel dice:

    Estupendo tutorial, Walter. Me pongo manos a la obra y te cuento si funciona. ¡Cruzo los dedos!
    Muchísimas gracias.

  11. Revangel dice:

    Hola, Water. He seguido todo el tutorial, he cambiado los permisos desde el Filezilla y sin embargo me da el siguiente error:

    403 Forbidden

    You don't have permission to access /cgi-bin/FormMail.pl on this server.

    ¿Cómo puedo solucionarlo?

    Mil gracias

    • revisa el nombre del archivo y comparalo con el archivo que mandas a llamar directamente en el formulario, revisa cuidadosamente las mayusculas y minusculas en el nombre. Recuerda que los permisos (755) son para el archivo no para la carpeta (es solo un recordatorio)

  12. gabriel dice:

    walter mil gracias esto era un dolor de cabeza

  13. Revangel dice:

    Hola de nuevo.
    He revisado cuanto me comentas y nada. Incluso he probado creando una carpeta distinta de cgi-bin, he renombrado el archivo como formulario.pl y comprobado vínculos, he probado tanto la ruta completa como la relativa… Sigue sin salirme. Aunque ahora el error es distinto: o bien me dice que la ruta no es correcta, o que el enlace está roto, o me aparece el propio documento del archivo formlario.pl en la página web. ¿Qué estaré haciendo mal?
    Otra duda: En la línea que había que modificar en el FormMail relativa a "tudominio.com", en mi caso sería "revangel.es" y así es como lo tengo escrito, pero ¿sin el protocolo http delante? Dime si puedo enviarte los documentos por email, por si puedes echarle un vistazo.
    Siento marearte…
    Gracias, Walter.

  14. No hay problema, enviame los archivos, incluyendo el CGI

  15. Revangel dice:

    Hola, Walter. ¿Cómo puedo enviarte los archivos?
    Salud.

  16. willy dice:

    tengo un problema
    antes, cuando le daba a enviar, se me aparecía la ventana para descargar el archivo .pl
    lo arregle
    pero ahora cada vez que lo envió me manda a una pagina del host gratuito
    no encuentro el error :(

  17. Eso es en los campos Hidden, ¿ya creaste la pagina de agradecimiento?

    Revisa que:
    <input type='hidden' name='redirect' value='http://www.tudominio.com/gracias.html&#039; />

    Hayas reemplazado "tudominio . com" con la url de tu website.

    Cualquier cosa avisas.

  18. hola amigo de antemano saludos!

    mira tengo este error me gustaria saber que es? espero me puedas ayudar brohter gracias saludos

    Error: Bad Header Fields

    The header fields, which include recipient, email, realname and subject were filled in with invalid values. You may not include any newline characters in these parameters. More information on filling in these form fields and variables can be found in the README file.

    FormMail V1.92 © 1995 – 2002 Matt Wright

    A Free Product of Matt’s Script Archive, Inc.

  19. Hola mi admiradisimo Walter Alvarez

    En primera instacia me acerco a este post en agradecimiento por compartir tu conocimiento con todos nosotros, tanto tutoriales, ebooks, y todas aquellas herramientas que estoy dispuesto a aprovechar.

    Como segundo punto te agradeceria tu asesoria, realice mi formulario tal y como nos mostraste en los tutoriales, después configure el mismo como esta en este Post, y me dio mucho gusto recibir el agradecimiento como respuesta de mi envio, pero hasta el momento no me ha llegado el correo a mi cuenta, como te comentote agradeceria si me pudieras ayudar en este punto, de verdad te lo agradeceria de corazón por que para colmo tengo otro sitio donde deseo aplicar este proceso!

    De antemano Saludos y que tengas un excelente Día

    • Con mucho gusto te ayudo, envíame el archivo.pl y el formulario.html que utilizaste, los reviso y te los envío de regreso. Obviamente publicaré aqui la explicacion. Saludos

      • Fernando Hernández dice:

        Hola yo de nuevo molestando, jaja, te agradezco muchotu ayuda, revice lo que me mandaste y lo subí a mi servidor pero ahora al llenar el formulario y darle enviar me mando lo siguiente

        Internal Server Error
        The server encountered an internal error or misconfiguration and was unable to complete your request.
        Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.
        More information about this error may be available in the server error log.
        ——————————————————————————–
        Web Server at dulcesantojos.com

        a diferencia antes de que me corrijieras me mandaba a la pagina de agradecimiento, espero me puedas ayudar nuevamente, muchas gracias! (perdón si sueno desesperado, pero realmente lo estoy, aun que sé que debe tener solución)

        • fla_wer2 dice:

          si pudiste resolver el formulario a mi me pasa lo mismo, cada vez que envio mi formulario me pide guardar el archivo. Necesito ayuda.

          gracias

  20. fla_wer2 dice:

    según los pasos solo me falta esto…
    Ya para finalizar solo me queda decir que cuando subas el archivo al servidor le debes cambiar los permisos a 755. Originalmente todos los archivos tienen permisos 644, pero el formulario.pl debe tener permisos 755.
    que no encuento cómo hacerlo.

    perdona la ignorancia, pero soy nueva en esto
    mil gracias de antemano

  21. Francisco José dice:

    Saludos! agradezco totalmente tu tutorial! aunq de verdad q dolor de cabeza jajajaja tengo un problema y es el sgte:

    Not Acceptable

    An appropriate representation of the requested resource /cgi-bin/formulario.pl could not be found on this server.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

    Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_jk/1.2.30 Server at http://www.animaldj.net Port 80

    el código q puse o lo deje así:

    <form action="http://www.animaldj.net/cgi-bin/formulario.pl&quot; method="post" enctype="text/plain">
    <input type='hidden' name='recipient' value='staffanimaldj@gmail.com' />
    <input type='hidden' name='subject' value='Saludos tiene un nuevo correo desde la web:' />
    <input type='hidden' name='sort' value='nombresyapellidos, telefono, email, motivo, comentario' />
    <input type='hidden' name='redirect' value='http://www.animaldj.net/gracias.html&#039; />
    <input type='hidden' name='required' value='nombresyapellidos, email, telefono, motivo, comentario' />

    mil gracias!!!!!!!

    • El mensaje que te muestra se lee que no existe el archivo en el servidor, ¿ya subiste el formulario.pl dentro de cgi-bin? y asi lo has hecho y persiste el mensaje consulta con tu proveedor si tienes permiso para ejecutar CGI, algunos proveedores eliminan ese permiso.

  22. hola

    me a parecido exelente el tutorial, pero me aparece el siguiente problema

    The header fields, which include recipient, email, realname and subject were filled in with invalid values. You may not include any newline characters in these parameters. More information on filling in these form fields and variables can be found in the README file.

    que puede ser?.. tengo la duda con la info que introduje en el hidden.. podrias explicarme que debo poner en cada item en el value..

    • Lo que te dice es que los valores que utilizaste para esos campos no son válidos, revisa el formulario que los valores que utilizas ahi correspondan exactamente a la forma en que se llaman en el formulario (atributo "name").

  23. Amaia Ballesteros dice:

    Hola Walter!
    Muy interesante tu tutorial, lo he seguido paso a paso pero tengo una duda.
    ¿Si en @recipients = &fill_recipients(@referers) pongo @recipients = ('midominio.com','info@midominio.com'), me entrará SPAM ??
    Mi hosting me advierte de que FormMai.pl es muy vulnerable, y que si genero Spam, me desactivarán el formulario.
    ¿Qué puedo hacer?

    Muchas gracias y un cordial saludo!

    Amaia Ballesteros http://www.amaiaballesteros.com

    • Por eso se protege el archivo al final, cuando le ponemos permisos 755 esto hace que unicamente se pueda acceder a el por el sitio propietario

      • Amaia Ballesteros dice:

        ¿Quieres decir que si escribo el código así dentro del FormMail.pl, y luego le doy permisos al archivo estaría todo bien? Es que el tema del spam me tiene preocupada…

        @referers = ('amaiaballesteros.com','ip de mi servidor');
        @recipients = ('amaiaballesteros.com','info@amaiaballesteros.com')

        • http://www.securityfocus.com/bid/1187/info ahi esta la nota de las vulnerabilidades, la version mas segura es la 1.9 y la version que estas descargando es la version 1.92

          • Amaia Ballesteros dice:

            Gracias Walter!
            ¿La versión ha mejorado o debo bajarme la 1.9? Es que soy bastante nueva en temas web…
            Me bajé la versión desde http://www.scriptarchive.com/formmail.html

            Gracias y un saludo!
            Amaia

          • Entonces estás bien, porque has descargado la version 1.93 que es la ultima que salió

          • Amaia Ballesteros dice:

            Perdona mi ignorancia. Ahora me sale esto al enviar el formulario :(
            Internal Server Error
            The server encountered an internal error or misconfiguration and was unable to complete your request.
            Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.
            More information about this error may be available in the server error log.

            No sé que puedo estar haciendo mal, parece sencillo.
            @referers = ('amaiaballesteros.com','91.142.218.142');
            @recipients = ('amaiaballesteros.com','info@amaiaballesteros.com')

            Si dejo como está @recipients = &fill_recipients(@referers), el formulario se envía y sale correctamente redireccionado a la página de "gracias". Pero así, sin poner mi dirección, naturalmente no me llega el formulario a mi correo.
            Si escribo:
            @recipients = ('amaiaballesteros.com','info@amaiaballesteros.com') me da el mensaje de error que te he comentado.

            ¿Qué puede ser?
            Siento marearte… Gracias, Walter.

          • Prueba cambiando
            $mailprog = ‘/usr/lib/sendmail -i -t’;

            Por
            $mailprog = ‘/usr/sbin/sendmail -i -t’;

          • Amaia Ballesteros dice:

            Nada, no hay manera. Sigue saliendo el mismo error…

          • la linea @recipients = &fill_recipients(@referers) dejala tal cual y haz el cambio que te dije anteriormente

          • Amaia Ballesteros dice:

            Tampoco funciona.
            Sólo llego a la "página de gracias" dejando todo como al principio y solamente cambiando @referers = ('amaiaballesteros.com','91.142.218.142');
            Con lo cual, nada llega a info@amaiaballesteros.com
            He revisado el formulario en dreamweaver y no veo errores…
            ¿Puedo enviarte los archivos por email, o es mucho pedir?

            Gracias por tu paciencia! Un saludo.

          • mandamelos a war [arroba] solucionesseo.com con gusto los reviso

  24. Roberto dice:

    Walter como hago para que mi formularios sean como esta web http://www.argentinaturismo.com.ar/aimogasta/hoteles.html
    ya que tengo muchos clientes y necesito que los visitantes hagan consultas a mis clientes a traves de este formulario y si se puede que me caiga una copia a mi

    No se que Script va en realidad ya probe varios y no me sale, soy medio nuevo en esto y para entenderlo necesito graficarlo

    Muchas Gracias

  25. De antemano recibe una cordial y cincera felicitación por este sitio ya que es de gran utilidad para los que nos dedicamos al desarrollo de herramienta Web.

    Por otra parte fíjate que yo seguí los pasos de acuerdo a como lo marcas en el tutorial, sin embargo no sé dónde me equivoqué y me manda el error 450 como a continuación te lo muestro al dar clic sobre el botón enviar e intentar manda el correo:

    Error405:
    Method Not Allowed
    The requested method POST is not allowed for the URL /desapal/cgi-bin/formulario.pl.
    ________________________________________
    Apache/1.3.26 Server at http://www.prepaenlinea.sep.gob.mx Port 80

    Agradecería mucho me apoyaras en la corrección de este error.

  26. Usually I do not learn post on blogs, however I would like to say that this write-up very forced me to take a look at and do it! Your writing style has been surprised me. Thanks, quite great post.

Leave a Reply

Photoshop y Tutoriales, es un blog de diseño: PSD gratis, tutoriales, vectores, y mucho más. Todos los derechos reservados. Los logos corresponden a sus respectivos dueños