kadazuro.com
 TutorialesFormulario con FormMail
 
por: kadazuro
imprimir este documento
 
Hacer un formulario en flash no es tan difícil como se piensa, el dolor de cabeza viene a la hora de enviarlo a una dirección de e-mail , y hacerlo de forma invisible para el usuario ( sin usar el programa de envío de correo electrónico); para esto se usa lo que se denomina CGI ( Common Gateway Interface -Interfaz de Compuerta Común) , estos son archivos ejecutables se encargan entre otras cosas de recibir la información procesarla e enviarla por correo; las extensiones de dichos archivos pueden ser .cgi, .pl, php y otras.

Para poder correr/ejecutar dichos archivos es necesario preguntarle al administrador del servidor qué posibilidades hay de usar archivos cgi, de que tipo ,en que carpeta se pueden guardar ( usualmente llamada cgi-bin ), o si ellos tienen archivos pre-establecidos ( para el uso del pueblo ) que cumplan con esa función, de ser así: cómo poder configurar tus formularios. Una vez con esta información lo demás "va sobre ruedas"

En este tutorial trataré de explicar como hacer un formulario en flash y enviar la información usando un archivo pl (formmail de Matt Wright );mundialmente conocido por fácil de configurar, eficiente y lo más importante: por ser ¡GRATIS! : ) ; configurar el script formmail y un simple chequeo para verficar la inserción de datos en el formulario.

Paso 1:
Para hacer el formulario lo primero que tenemos que hacer son los TextFields , en este tutorial ocuparemos únicamente cuatro ( nombre, email, comentarios y status ),para esto seleccionamos la tecla de texto y la de TextFields ; click en el escenario y atrastramos. Una vez hecho lo seleccionamos, botón derecho y en propiedades le ponemos nombre [ estos nombres son los que llegarán por correo indicando a que campo pertenecen, por lo que recomiendo usar nombres significativos( al de nombre le pondremos nombre o name y así los siguientes) ] ver figura 1

figura 1. Propiedades del TextField para el campo nombre.

repetir los pasos para los otros campos, en el de comentarios seleccionar Multiline y WordWrap; el campo status será usado para la verificación de los datos y como no queremos que escriban en el hacemos check en Disable editing y disable selection.

Paso 2.
Ocuparemos también dos botones uno enviar y otro borrar, en las acciones del botón revisaremos que digiten datos en los tres campos, es decir que si algún campo está en blanco saldrá el error en el TextField status.
La forma más fácil de hacerlo sería revisando uno por uno, si alguno tira error el proceso termina ( no se envía el correo y sale reflejado en status).


Primero te pongo la lógica y luego el script.

Si campo nombre está en blanco
ponga campo status en Digite su nombre
caso contrario si campo email está en blanco
ponga campo status en Digite su email
caso contrario si campo comentarios esta en blanco
ponga campo status en Digite sus comentarios.
caso contrario ENVIE EL CORREO! y vaya a la etiqueta "ok"

ahora en idioma de flash.

On (Release)
If (nombre eq "")
Set Variable: "status" = "Por Favor digite su nombre"
Else If (email eq "")
Set Variable: "status" = "Por Favor digite su email"
Else If (comentarios eq "")
Set Variable: "status" = "Sus comentarios son importantes"
Else ...

Si estamos listos para enviar el correo ocupamos un par de cositas más, primero tenemos que borrar el contenido de status ( para que no llegue el correo con una línea que diga "por favor digite su email"); y segundo: tenemos que saber dos cosas: a qué dirección de correo será enviado el formulario, qué queremos que diga el encabezado y donde está el script que lo va a enviar, para asi mandarle las variables (osea la información de los TextFields); si estuvieramos en DreamWeaver esto se haria con campos ocultos ( HiddenFields ) y la dirección del script sería la acción del formulario; en Flash podemos hacer esto defiendolos como variables en las acciónes del botón [con SetVariable(los campos)y LoadVarialbes(la dirección del Script)], pero, ¿con qué nombre?.

Formmail nos dice que el campo destinatario se llama "recipient", el de encabezado "subject" y la dirección es la carpeta donde está el script ( que era usualmente cgi-bin)

continuación de script

...Else
Set Variable: "status" = ""
Set Variable: "subject" = "Solicitud de Información"
Set Variable: "recipient" = "correo@server.com"
Load Variables ("http://www.server.com/cgi-bin/formmail.pl", "", vars=POST)
Go to and Stop ("ok")
End If
End On

Tip.
Formmail por tiene preestablecido devolver una página: la clásica gracias "...la información fué enviada satisfactoriamente, gracias"; página en html...,pero nosotros estamos en flash y ocupamos que se vaya al label "ok" [ donde está el mismo mensaje pero en flash :) ].
Para evitar está página no hacemos el link con GeUrl sino con LoadVariables ( como en el script ), pero envez de decirle loadvariables en un nivel, le hacemos target a nada y enviamos las variables usando post (ver figura 2.)

Figura 2. El LoadVariables, target " " using post.

Paso 3.
para configurar el script (incluído en el zip )cambiar lo enfatizado en figura3 de acuerdo al servidor que se esté ulilizando, smtp_server= servidor de correo y referers= servidores habilitados ( autorizados) para correr el script

figura3.

Nota.
Para configurar formmail.pl versión unix/linux se requiere modificar las direcciones de perl, sendmail y @referers.
Perl y sendmail usualmente están en una carpeta standard pero si no funciona preguntale a tu Administrador de servidor por el Perl Path y te sabrá dar indiciaciones.

Paso4.
Para poner las acciones en el botón borrar, sólo de demos que decir a flash que nos ponga las variables en blanco(con contenido nulo, sin contenido, >que nos las borre<); para eso de damos SetVariable, en la primer caja el nombre de la variable y ( nombre, email, comentarios ) y en la siguiente caja la dejamos en blanco.

On (Release)
Set Variable: "nombre" = ""
Set Variable: "email" = ""
Set Variable: "comentarios" = ""
Set Variable: "status" = ""
End On.

figura4. como poner en blanco/borrar los campos

 

 

 
regresar
TextFields : Campos de texto editables
 

Historial:

  • febrero5,2001, se agrera formmail version unix/linux en el zip y una nota en el paso3 para configuración.
  • agosto 31,2000 se agrega el paso 4: indicaciones para el botón borrar.
  • agosto 29,2000: Se publica el Documento.