asd

13

Sep

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

Publicado por: LeoBaraldi

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:
  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. }

22 Respuestas

    alejandro Dice:

    ojo el archivo de descarga esta dañado.

    LeoBaraldi Dice:

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

    German Dice:

    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!

    Ved Dice:

    Muito bom o blog! Parabens!

    adrian Dice:

    no funciono y eso que tengo smtp.

    LeoBaraldi Dice:

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

    jhonson Dice:

    disculpe que archivo hay que modificar en el formulario gracias

    LeoBaraldi Dice:

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

    Actionscript:
    1. Variables.recipient = "info@tudominio.com";
    2.  
    3. Variables.subject = "Formulario desde la web";

    David Dice:

    no me funciona.... podrias enviar los archivos... gracias...

    alberto Dice:

    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??

    LeoBaraldi Dice:

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

    Guiye Dice:

    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.

    miguel Dice:

    exelente aporte, ahi q checar la descarga

    Saidor Dice:

    Gracias Leo, tus tutoriales son un lujo.

    Saidor Dice:

    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.

    Felix Fernandez Floria Dice:

    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,

    ricardo giordano Dice:

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

    LeoBaraldi Dice:

    Si podes decime que tipo de error, gracias!

    Virginia Ramos Dice:

    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

    Javier Dice:

    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

    Enrike Dice:

    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.

    Enrike Dice:

    Ya lo he solucionado, cambiando lo inicial por esto:

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

    Gracias igualmente.

Publicar comentario

IMPORTANTE: Los comentarios son moderados. A la brevedad seran subidos.

Leonardo David Baraldi

Leonardo Baraldi

Nací en Villa Carlos Paz, tengo 33 años y me dedico a desarrollos para la web desde el año 99, preferentemente en las aéreas de ActionScript y CSS. Trabajo para la firma Manifesto Solutions como jefe de producción.

ultimos post

Usa Firefox es mejor che!!!
Copyright © 2008 LeoBaraldi. Todos los derechos reservados.
Designed by LeoBaraldi and powered by Wordpress | RSS Feed
Love WordPress
Manifesto
Manifesto solutions
Sponsort Oficial de LeoBaraldi