SE ACTUALIZO ESTE POST, NUEVA VERSION DEL MISMO Y MEJORADO EN http://www.leobaraldi.com.ar/2008/09/13/formulario-de-contacto-flash-as3-funciona-para-cuentas-gmail-y-hotmail-inclusive/
Ante que todos vamos a necesitar que nuestro servidor soporte php porque por si solo el flash no puede enviar datos como un mail.
Vamos a usar el un código en php que esta disponible en muchas páginas de recursos para flash el cual sera el encargado de enviar nuestros mail.
La idea de este tuto es mostrarle como hacer desde flash para comunicarnos con dicho php y este envié un mail, en ustedes estara la posibilidad de agregar mas campos y personalizarlo a la medida que lo necesiten.
Pasemos al AS de flash, como siempre en el primer frame ponemos lo siguiente:
- //por si tenemos caracteres raros como las ñ óáéíú
- System.useCodepage = true;
- //aqui abrimos la seguridad de nuestro server para este flash e indicamos el dominio
- System.security.allowDomain("http://www.misitio.com.ar/");
- //aquí que levante el archivo de políticas de seguridad
- System.security.loadPolicyFile("http://www.misitio.com.ar/crossdomain.xml");
- //esto que esta arriba y lo de la seguridad es un nuevo requerimiento para flash 8 para que no se
- //pueda ejecutar películas desde fuera de nuestro dominio
- //
- //
- //
- //un stop por si los mosquitos
- stop();
- //creamos una función enviar que verificara todos nuestros datos si están de manera correcta
- function enviar() {
- //creamos una variable con el valor 1 para validar el "esta todo bien"
- envio = 1;
- //
- //comenzamos a definir la variable que almacenara nuestros campos de textos de tipo introducción de texto
- //como pueden ver "variable" es el contenedor, en el se grabaran todos los datos
- //que el usuario ponga en cada campo.
- //NOTA: como pueden ver comenzamos de atrás para delante, si el ultimo campo de nuestro
- //formulario es el campo de consulta lo ponemos primero y así sucesivamente
- //de esta manera cuando recibamos el mail nos quedara en el orden correcto, porque pasa esto ni idea, si
- //alguien sabe que aporte.
- variables.Mensaje = consulta_txt.text;
- //acá vamos por el campo mail, como pueden ver hay un condicional simple que verifica que el
- //usuario no deje el campo en blanco.
- //si este esta en blanco en dicho campo escribe: "este campo es obligatorio"
- //y la variable "envio = 0" evitando de esta manera que el formulario se envié.
- if (mail_txt.text == "" || mail_txt.text == "este campo es obligatorio") {
- mail_txt.text = "este campo es obligatorio";
- variables.correo = mail_txt.text;
- envio = 0;
- } else {
- variables.Correo = mail_txt.text;
- }
- //aquí que agregue al contenedor el campo apellido
- variables.Apellido = apellido_txt.text;
- //aquí otro condicional igual al mail que nos obliga a poner un nombre
- if (nombre_txt.text == "" || nombre_txt.text == "este campo es obligatorio") {
- nombre_txt.text = "este campo es obligatorio";
- variables.nombre = nombre_txt.text;
- envio = 0;
- } else {
- variables.nombre = nombre_txt.text;
- }
- //aquí viene la verdad de la milanesa.
- //este condicional simple dice si todos los campos están completos incluyendo que en los obligatorios
- //no este la cadena de texto "este campo es obligatorio", entonces envía el mail
- if (envio == 1) {
- //aquí a nuestro contenedor le indicamos a que mail queremos recibir las consultas
- variables.email = "info@leobaraldi.com.ar";
- //aquí el titulo del mail
- variables.subject = "Formulario desde la Web";
- //aquí la dire de nuestro php
- //NOTA: OBSERVERSE que usamos el método "sendAndLoad" que significa, enviar y recibir una respuesta
- //después de ser enviado los datos.
- //quien envía? "variables". A donde? a la "url" que vemos abajo. Quien recibe la respuesta? "variables". Por que método? "post"
- //no se olviden de poner bien su direccion completa donde esta el php
- variables.sendAndLoad("http://www.misitio.com.ar/mail.php?nocache="+random(10000), variables, "POST");
- }
- }
- //para usar el metodo sendAndLoad debemos declarar un nuevo objeto en este caso "new LoadVars()"
- variables = new LoadVars();
- //como dijimos antes tenemos un send and load y load se refiere a que alguien o algo en el flash
- //recibirá la respuesta de "ok el servidor envio el mail" y el encargado del mismo es "onload"
- variables.onLoad = function() {
- //por o tanto acá podemos desencadenar cualquier evento que le avise al usuario que su
- //mensaje fue enviado correctamente
- estado_txt.text = "Mensaje enviado correctamente..."+newline+"Gracias..."
- };
- //bueno este es simple es el botón que al presionarlo haga todo lo que vimos arriba.
- enviar_btn.onRelease = function() {
- enviar();
- };
10 marzo, 2007 at 11:30 am
MUCHAS GRACIAS
por tu formulario de email
es siple de manejar y sobre todo, funciona; estaba frito con los formularios que que llegan en blanco; muchas gracias de nuevo
19 marzo, 2007 at 11:22 am
el flash 8 me da q hay errores de sintaxis en varias lineas :S no soy tan avesada como para detectarlos, pero en las primeras 2 clavado da error :S
19 marzo, 2007 at 11:46 am
consegui q funcionara a medias pues sin modificar lo sustancial del ejemplo, aunque no llene lso campos envia el mail
4 abril, 2007 at 5:28 pm
Leo No me anda, pero creeria que s por el flash 8. Tenes alguna solucion? Si no, consigo alguna version anterior y lo hago desde ahi. Muchas gracias Campeon!
10 abril, 2007 at 1:51 pm
He subido este formulario a la pagina que estoy realizando.. al momento de llenar los datos y enviarlos, me sale el mensaje que ya se enviaron, pero no me llegan a la bandeja de entrada de mi correo.. que estoy haciendo mal?? puede ponerse en contacto conmigo??
11 abril, 2007 at 7:07 pm
hola tengo problemas para enviar variables de flash a php…
******flash
onClipEvent(load)
{
var finito = new LoadVars();
var dos = new LoadVars();
ponde=_global.ponderacion;
palab=_global.palabras;
lectu=_global.lectura;
numero=_global.obtenido;
finito.ponderacion =ponde;
finito.palabras = palab;
finito.nombrelectura = lectu;
finito.numerolectura = numero;
//_root.micou.text=ponde + “,” + palab+”,”+”,”+ lectu+”,”+ numero;
finito.sendAndLoad(“fincompro.php”, dos, “POST”);
dos.onLoad = function()
{
};
//Función que procesa los datos recibidos del servidor
}
**************fin flash
*********y php
$ingpal=$_POST["palabras"];
*******fin php
el problema es que no evia ni rosca y llevo mas de una semana…ayuda
23 abril, 2007 at 5:13 pm
Este formulario no anda si el destinatario del formulario es usuario de hotmail o gmail :( lo descubri hace poquito ya voy a ver porque o como arreglarlo.
17 mayo, 2007 at 8:25 am
Your site is perfect!
23 julio, 2007 at 2:00 am
dos inquietudes….me sale unos herrores en el accion script de flash y lo otro es al php no hay que modificarle nada???
Gracias…
29 agosto, 2007 at 7:16 am
Hola sabes q es lo q no entiendo… eso d PHP… d donde lo saco? las acciones d AS tenía unas parecidas pero cuando tengo q poner otras en PHP no s si es adentro d Flash o si tengo q tener otro programa o hacerlo mediante un servidor. M podés explicar un poquito esta parte? MeL
29 agosto, 2007 at 11:39 pm
Las instrucciones en php, van del lado del servidor, es un archivo, que no va dentro de nungun flash, es una hoja que ejecuta distintas funciones para dar algún resultado, como un archivo html, xml o una variable resultante. En el caso de formulario como el flash no puede enviar datos lo que hace el php es recibir lo que vos pones en el formulario en flash y el php se encarga de ancapsular dichos datos y los envia, si el envio fue correcto el php le envia una respuesta al flash que el envio fue correcto.
En definitiva el flash adentro no lleva ningun codigo php, simplemente le ordena al php que esta afuera donde deben ir los datos y el flash espera si lo pudo realizar a la tarea
31 agosto, 2007 at 8:17 am
Entonces donde tengo que armar ese archivo html, xml o variable? Tengo que tener un hosting para probarlo ya.. no? y otra pregunta.. viste cuando ya armás el fichero de contacto.. para q salga el msj d “su msj ha sido enviado” eso s programa del botón d enviar msj no? Besos. MeL
28 octubre, 2007 at 1:13 am
Hello! Good Site! Thanks you! nsehmcihtmzb
22 diciembre, 2007 at 2:02 am
Hola segui todos los pasos pero no me llegan los emails, luego al momento de poner enviar me sale que el mensaje ya enviado exitosamente pero aun siguen llenos los campos, ¿hay forma de que a la hora de enviar se redireccione a otra pagina? o que regrese a la pagina inicial? como y donde hago eso? y estuve viendo que el php esta en ingles y el script del primer fotograma en flash esta en español eso no genera conflictos? porfavor ayudenme a poder lograr este formulario que me tiene LOCO!!!
19 febrero, 2008 at 9:21 am
hola leo muy buena tu pag, hace poco empece a diseñar y si no fuera por gente como vos q tiene estos tutoriales estaria como al principio.
Una consulta ( x ahora estoy usando coffeecup para los formularios hasta q le agarre la mano a hacerlo en flash) yo hice el formulario en flash y luego tengo que crear el archivo php (lo haria con dreamweaver)y los subiria al server para q el mismo funcione?
desd ya muchas gracias y exitos
19 febrero, 2008 at 9:24 am
jeje puse mal la dire de mi web en el comentario anterior. cosas que pasan no? me olvide el .ar jaja
22 febrero, 2008 at 12:11 pm
Hola alepech, fijate en los archivos a descargar de ste ejemplo tens un file php (mail.php), solo debes subir ese file a tu server y listo!!!
15 abril, 2008 at 12:14 pm
Perfecto pero como podria modificar este ejemplo para permitir agregar adjuntos al correo, lo necesito para que me envien curriculums de esta forma, muchas gracias !!!
Jorge.
23 abril, 2008 at 10:44 pm
Hola leo, estoy con el tema de los formularios y lo puedo hacer andar babaro, pero tengo el problema que no me llegan a mail de hotmail, vi que dejaste un comentario sobre eso, que ibas a averiguar,tuviste alguna novedad? se puede solucionar? bueno gracias desde ya
saludos
7 junio, 2008 at 1:53 pm
hola perdon por las molestias estoy intentando meter un formulario en mi web e probao 600 ya y no ai manera.
Eh modificado el action script de flash ( tengo que modificar el archivo mail.php tambien?
es que soy un novato sorry un saludo!
y gracias
7 junio, 2008 at 2:57 pm
El php lo dejas tal cual como esta,en esta linea “variables.email = “info@leobaraldi.com.ar”;” debes reemplazar el correo que esta por el que vos queres. Recuerda que este formulario no funciona para cuentas Hotmail y Gmail.
31 julio, 2008 at 1:04 pm
Mira y si uso el archivo php adaptado a otro form que ya yo tenia hecho servira?….
2 agosto, 2008 at 12:48 am
Lucy puedes usarlo con cualquier formulario que tengas! descargate el ejemplo y fijate como se comunica con cada campo almacenando en una variable
5 agosto, 2008 at 10:16 am
Gracias a todos los que ayudais a
princpiantes, aunque sea uno de 74 añitos, como yó.
Un abrazo muy fuerte
8 agosto, 2008 at 3:56 pm
Si me funciona , seràs mi nuevo idolo, eres genial Leo, saludos desde Chile un abrazo…
11 agosto, 2008 at 12:19 pm
Leo, compadre puedes avisar cuando este formulario funke con Hotmail y Gmail…
Lo Necesito, plis
Saludos Hermano
12 agosto, 2008 at 1:38 am
Ok, este fin de semana me pongo en campaña!
13 septiembre, 2008 at 11:45 am
PROBLEMA CON CUENTAS HOTMAIL Y GMAIL RESUELTO EN http://www.leobaraldi.com.ar/2008/09/13/formulario-de-contacto-flash-as3-funciona-para-cuentas-gmail-y-hotmail-inclusive/
6 diciembre, 2008 at 2:53 pm
hello, good site.
8 junio, 2010 at 1:10 pm
hola
14 junio, 2010 at 3:49 pm
Gracias mostro funciono a la perfección!!!
muy bien explicado!!
Gracias!
4 septiembre, 2012 at 10:32 pm
Gracias,,super sencillo, super bien explicado,,te amé!!! jejejeje ^-^