LeoBaraldi – Ejemplos Flash, Ejemplos actionscript, Tutoriales Flash, Tutoriales actionscript, actionscript 3, curso de actionscript

Recursos y ejemplos de actionscript, Flash, AIR, Flex, CSS y HTML. Tutoriales de actionscript 2 y actionscript 3

Formulario de contacto flash AS3, funciona para cuentas Gmail y Hotmail inclusive

| 42 Comments

Hace ya un tiempo había preparado un formulario de contacto en AS2 y funciona muy bien pero tiene ciertas carencias como por ejemplo la verificación de email ya que se hace atreves de un prototipo y no es muy efectiva que digamos. Pero la más importante de todas es que no funcionaba para cuentas de email sin dominios, como por ejemplo Hotmail o Gmail.

En esta nueva versión de formulario de contacto está totalmente realizadas en ActionScript 3 y como novedad entre las tantas van a poder ver cómo utilizar expresiones regulares, en este caso particular se utilizo un patrón para verificar el correo electrónico sea válido.

ActionScript
< view plain text >
  1. //el php encargado de enviar los datos
  2. const FILE:String  = "formmail.php";
  3. //aca puden indicar el dominio de su sitio si quieren probarlo desde el player de flash
  4. var dominio:String = "";
  5. //como voy a recibir los datos que me devuelva el php > como variables
  6. var dataFormat:String = URLLoaderDataFormat.VARIABLES;
  7. //patron o expresion regular para verificar un email
  8. var patronEmail:RegExp = /(^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*.[0-9a-zA-Z]{2,3})$/;
  9. //nuevo objeto para las variables
  10. var Variables:URLVariables = new URLVariables();
  11. //destinatario o casilla de destino, puede ser gmail, dominio propio y HOTMAIL!!!!
  12. Variables.recipient = "info@tudominio.com";
  13. //Titulo del mensaje
  14. Variables.subject = "Formulario desde la web";
  15. //necesario para manejo de variables
  16. var urlRequ:URLRequest = new URLRequest(dominio+FILE);
  17. urlRequ.method = URLRequestMethod.POST;
  18. urlRequ.data = Variables;
  19. //objeto que trae se encarga de enviar y recibir los datos al php
  20. var urlLoad:URLLoader = new URLLoader();
  21. //aqui formateo los resultados recibidos del php en modo variables
  22. urlLoad.dataFormat = dataFormat;
  23. //accion del boton enviar
  24. enviar_btn.addEventListener(MouseEvent.MOUSE_DOWN,enviarForm);
  25. //funcion encargada de enviar los datos al php
  26. function enviarForm(obj:Event) {
  27.     if (patronEmail.test(email_txt.text)==true && nombre_txt.text !="" ) {
  28.         resultado_txt.text ="";
  29.         Variables.Cosulta = consulta_txt.text;
  30.         Variables.email = email_txt.text;
  31.         Variables.Nombre = nombre_txt.text;
  32.         urlLoad.load(urlRequ);
  33.     } else {
  34.         resultado_txt.text="Complete los campos!";
  35.     }
  36. }
  37. //escuchadores de que paso con los datos del lado del servidor
  38. urlLoad.addEventListener(Event.COMPLETE, envioCompleto);
  39. urlLoad.addEventListener(IOErrorEvent.IO_ERROR, errorEnvio);
  40. //si el envio fue correcto
  41. function envioCompleto(obj:Event) {
  42.     //si el php me dio el ok de que fue enviado
  43.     if (urlLoad.data.resultado=="ok") {
  44.         resultado_txt.text="Mensaje enviado";
  45.         consulta_txt.text="";
  46.         email_txt.text ="";
  47.         nombre_txt.text="";
  48.     } else {
  49.         resultado_txt.text="Error al enviar";
  50.     }
  51. }
  52. //si hay problemas con el php
  53. function errorEnvio(obj:Event) {
  54.     resultado_txt.text="Error en el servidor!";
  55. }
  56. //evento para el campo de texto cuando dejan de hacer foco
  57. email_txt.addEventListener(FocusEvent.FOCUS_OUT,verificar);
  58. //verifico si el email es correcto!
  59. function verificar(obj:Event) {
  60.     if (patronEmail.test(email_txt.text)==false) {
  61.         email_txt.text ="*Email incorrecto";
  62.         stage.focus = email_txt;
  63.         var letras:int = email_txt.selectionEndIndex;
  64.         email_txt.setSelection(0,17);
  65.     }
  66. }

Author: LeoBaraldi

Diseñador gráfico y programador en Web, con experiencia profesional en el rubro desde 1998. Experto en diseño de interfaces Frontend y Backend, para sitios, portales y dispositivos móviles. Experto en estándares, CSS y HTML, conocimientos en CEO. Desarrollador de sitios multi plataformas en, HTML5, CSS3 y JQuery. Experto programador en Adobe Flex, AIR y ActionScript 3.0. Conocimientos en lenguajes como PHP, Javascript y bases de datos MySQL. Director de la carrera de diseño gráfico, Profesor de Diseño III y Diseño Web, en la Escuela Superior de Diseño Aguas de la Cañada, asesor y colaborador para medios gráficos, editoriales y revistas afines. Actualmente Jefe de Producción en Manifesto solutions.

42 Comments

  1. ojo el archivo de descarga esta dañado.

  2. Chekeado desde otro isp, funciona perfecto, si quieres te lo envio por mail

  3. Muy buena la informacion. Habria alguna forma de hacer funcionar esto en as2? ya que el otro no me funciono ni con dominios que no eran gmail ni hotmail

    Gracias loco segui asi!

  4. Muito bom o blog! Parabens!

  5. no funciono y eso que tengo smtp.

  6. Recuerda que esto requiere un server que soporte php y no te olvides de modificar las lineas de tu as con tu email

  7. disculpe que archivo hay que modificar en el formulario gracias

  8. En estas lineas debes modificar el email a donde van los mensajes!

    ActionScript
    < view plain text >
    1. Variables.recipient = "info@tudominio.com";
    2.  
    3. Variables.subject = "Formulario desde la web";
  9. no me funciona…. podrias enviar los archivos… gracias…

  10. a mi tampoco me funciona, he modificado los 2 archivos que dices, pero nada que al gmail no llega ningun mensaje y eso que los tengo subidos al host…

    pregunta:
    Variables.subject = “http://typograficos.awardspace.com/formail/formail.html”

    es decir direccion donde esta hubicado el formulario en la web, no??

  11. Variables.subject = “aca va el tema, por ejemplo
    : mensaje desde la web”

  12. A mi me funciona esta formulario, pero quisiera cambiar el orden de aparicion de los campos cuando llegan a la casilla de mail. Esto sera posible? porque no lo pude lograr. Gracias.

  13. exelente aporte, ahi q checar la descarga

  14. Gracias Leo, tus tutoriales son un lujo.

  15. Por cierto, ando buscando hace días una forma de cargar texto de archivo externo .txt en un clip con un xml (AS3). Te agradecería un mundo.

  16. Leo,
    Queria pedirte un favor abusando de tu buen avoluntad, si esposible.
    Cree un formulario en flash para enviar mails, sihuiendo mlos modelos tuyos, y…no funmciona. ¿Si te envio los archivos fla y php, podrias darme alguna idea?.
    Gracias anticipadas,

  17. leo no puedo hacer funcionar el formulario, me arroja error, he seguido los pasos descritos pero nada, necesito una mano

  18. Si podes decime que tipo de error, gracias!

  19. Hola Leo, gracias por publicar tu trabajo.
    Tengo el problema de que el email llega, pero no la información completada en el formulario (si el email del remitente). En realidad, este no es el primer script que pruebo, con todos los que probé con php+flash me sucede lo mismo.
    ¿Qué puede estar pasando?
    Saludos

  20. Hola, soy nuevo por aquí pero me sucede lo mismi que a Virginia, me llega el mail pero sin información, estaría muy agradecido si pudiesemos resolverlo.

    Gracias

  21. Hola Leo, primero agradecerte el que hayas compartido este formulario. Mi consulta es la siguiente:
    Me envia el correo pero sin el texto que escribí en el campo consulta_txt, solo sale: estos son los datos enviados por (el correo) y la fecha; te agradecería que me dijeses donde tengo el error.
    Un saludo.

  22. Ya lo he solucionado, cambiando lo inicial por esto:

    1. $mailbody.= $form["nombre"]. " (" .$form["email"].") el día " . date("F dS, Y"). "\n\n";
    2.   $mailbody.= $form["consulta"]. "\n\n";

    Gracias igualmente.

  23. me envia el mail epro no sale sino esto “Los siguientes son los datos enviados por:(uillermosira@hotmail.com) el dํa August 05th, 2010″ el mensaje no llega q hago?

  24. q es lo inicial para usted?

  25. csubido a servidor, pero me sale mensaje: error al enviar.

    en el comentario anterior acá dice que hay q reemplazar esas lineas de php .. pero reemplazarlas por que lineas?

  26. a mi tambien me sale “error al enviar”

    Y creo haber seguido todos los pasos

  27. Hola, gracias por el formulario, es muy bueno!!!!, ahora te pregunto: le agregué 6 campos, de los cuales me ve uno solo, no se por que no me envía el dato de los demás campos, los agregué en el PHP tambien:
    FLASH – function enviarForm(obj:Event) {
    if (patronEmail.test(email_txt.text)==true && apellido_txt.text !=”" && telef_txt.text != “”) {
    resultado_txt.text =”";
    Variables.apellido = apellido_txt.text;
    Variables.Nombre = nombre_txt.text;
    Variables.cumple = cumple_txt.text;
    Variables.email = email_txt.text;
    Variables.telef = telef_txt.text;
    Variables.domicilio = domicilio_txt.text;
    Variables.ciudad = ciudad_txt.text;
    Variables.provincia = provincia_txt.text;
    Variables.Consulta = consulta_txt.text;
    urlLoad.load(urlRequ);
    PHP – function send_mail($form,$invis_array){
    $toarray = explode(“,”,$form["recipient"]);
    $mailbody = “Los siguientes son los datos enviados por:\n”;
    $mailbody.= $form["Nombre"].” “. $form["apellido"]. ” (” .$form["email"].”) el día ” . date(“F dS, Y”) .”\n\n”;
    $mailbody.= “Cumpleaños el día:”.$form["cumple"].”\n\n”;
    $mailbody.= “Teléfono:”.$from["telef"].”\n\n”;
    $mailbody.= “Domicilio:”.$from["domicilio"].”\n\n”;
    $mailbody.= “Ciudad:”.$from["ciudad"].”\n\n”;
    $mailbody.= “Provincia:”.$from["provincia"].”\n\n”;
    $mailbody.= “consulta:”.$form["Consulta"].”\n\n”;

  28. LISTO !!!! encontré el error en el PHP en lugar de poner $form ponía from…jajaj !!! esgenial gracias

  29. Muy buenas,

    Lo primero, agradecer a Leo el aporte.

    El pero, tengo un problema, que ya ha tenido más gente: no me llega el mensaje completo, solo esto: “Los siguientes son los datos enviados por:
    (chicksnart@gmail.com
    ) el d?a November 15th, 2010″

    He leído una solución por ahí, pero no termino de entenderla, ¿dónde hay que sustituir ese código?

    Muchas gracias!

  30. GRACIAS!! PASE TODO EL FIN DE SEMANA TRATANDO DE ARREGLARLO Y ENCONTRE TU PAGINA Y ME AYUDO TOTALMENTE!!! NADA RARO SOLO MODIFICAR LOS NOMBRES A LOS QUE TU YA LOS TIENES EN TU ARCHIVO Y MAGIA!!!
    GRACIAS SOS GRAND!!!
    MUCHAS GRACIAS!!!

  31. pues a mi me lanza este error al darle al enviar, sin modificar nada desde el mismo archivo fuente:

    Error: Error #2101: La cadena transmitida a URLVariables.decode() debe ser una cadena de consulta con formato URL codificado y pares nombre/valor.
    at Error$/throwError()
    at flash.net::URLVariables/decode()
    at flash.net::URLVariables()
    at flash.net::URLLoader/onComplete()

  32. tengo el mismo problema qu varios usuraios me llega la info pero solo el mail de quien envia y la fecha… ya probe de todo para reformular el php pero nada :( alguna idea?

  33. Gracias Leo, por esta magnifica solución, lo único es que tenia un inconveniente en el .fla y otro en PHP, que no permitia que llegara el contenido del mail, lo modifique y subi los archivos a un server. http://www.megaupload.com/?d=823LFSJK

  34. GRACIAS LEO !!
    Sos mi guru de la web…

  35. Hola, quisiera hacer esta pregunta, estoy construyendo una pagina web y si quisiera subirla tendria que tener un servidor para poder recibir los mensajes y asi mismo utilizar el archivo php?, perdon por mi ignorancia. Espero no molestar

    Saludos
    Joselyn

  36. Muchas Gracias me funciono de maravilla.

  37. Gracias Leo, me sirvió de mucho, saludos!

    Ever

  38. gracias por el aporte!… tengo una duda, me envia los mensajes pero me sale error error al enviar en el estado. Y no me salen los acentos… me pone asi agradecería.

  39. hola oye no me ha funcionado el formulario lo he intentado varias veces y me urge terminar la pagina no se si me puedas apoyar un poco!

  40. tengo la esperanza de poder mandarte mi archivo de flash y que me ayudes te dejo mi correo luis14_ob@hotmail.com

  41. Hola compañero, el formulario me ha sido de mucha ayuda!

    pero lamentablemente en la web que lo quería implementar no he podido de ninguna manera, esto es debido a que desarrolle toda la web en base a actionscript 2.0 y si lo cambio a 3.0 para agregar lo del mailing, se me hace un desastre el resto de la web.

    tambien intente cargar el formulario desde loadmovie, y nada… parece que no se puede cargar un action 3, dentro d un swf con action 2, porq no me funciona.

    no se que solucion podria encontrarle!

  42. Gran aporte se agradece el trabajo, las respuestas, todo genial, a mi no me sirve la solucion por q tengo todo en as2, pero en fin gran aporte seguire buscando una solucion en as2 jjajajaaj

Deja un comentario

Required fields are marked *.