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.
- //el php encargado de enviar los datos
- const FILE:String = "formmail.php";
- //aca puden indicar el dominio de su sitio si quieren probarlo desde el player de flash
- var dominio:String = "";
- //como voy a recibir los datos que me devuelva el php > como variables
- var dataFormat:String = URLLoaderDataFormat.VARIABLES;
- //patron o expresion regular para verificar un email
- 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})$/;
- //nuevo objeto para las variables
- var Variables:URLVariables = new URLVariables();
- //destinatario o casilla de destino, puede ser gmail, dominio propio y HOTMAIL!!!!
- Variables.recipient = "info@tudominio.com";
- //Titulo del mensaje
- Variables.subject = "Formulario desde la web";
- //necesario para manejo de variables
- var urlRequ:URLRequest = new URLRequest(dominio+FILE);
- urlRequ.method = URLRequestMethod.POST;
- urlRequ.data = Variables;
- //objeto que trae se encarga de enviar y recibir los datos al php
- var urlLoad:URLLoader = new URLLoader();
- //aqui formateo los resultados recibidos del php en modo variables
- urlLoad.dataFormat = dataFormat;
- //accion del boton enviar
- enviar_btn.addEventListener(MouseEvent.MOUSE_DOWN,enviarForm);
- //funcion encargada de enviar los datos al php
- function enviarForm(obj:Event) {
- if (patronEmail.test(email_txt.text)==true && nombre_txt.text !="" ) {
- resultado_txt.text ="";
- Variables.Cosulta = consulta_txt.text;
- Variables.email = email_txt.text;
- Variables.Nombre = nombre_txt.text;
- urlLoad.load(urlRequ);
- } else {
- resultado_txt.text="Complete los campos!";
- }
- }
- //escuchadores de que paso con los datos del lado del servidor
- urlLoad.addEventListener(Event.COMPLETE, envioCompleto);
- urlLoad.addEventListener(IOErrorEvent.IO_ERROR, errorEnvio);
- //si el envio fue correcto
- function envioCompleto(obj:Event) {
- //si el php me dio el ok de que fue enviado
- if (urlLoad.data.resultado=="ok") {
- resultado_txt.text="Mensaje enviado";
- consulta_txt.text="";
- email_txt.text ="";
- nombre_txt.text="";
- } else {
- resultado_txt.text="Error al enviar";
- }
- }
- //si hay problemas con el php
- function errorEnvio(obj:Event) {
- resultado_txt.text="Error en el servidor!";
- }
- //evento para el campo de texto cuando dejan de hacer foco
- email_txt.addEventListener(FocusEvent.FOCUS_OUT,verificar);
- //verifico si el email es correcto!
- function verificar(obj:Event) {
- if (patronEmail.test(email_txt.text)==false) {
- email_txt.text ="*Email incorrecto";
- stage.focus = email_txt;
- var letras:int = email_txt.selectionEndIndex;
- email_txt.setSelection(0,17);
- }
- }
17 septiembre, 2008 at 9:52 am
ojo el archivo de descarga esta dañado.
17 septiembre, 2008 at 12:49 pm
Chekeado desde otro isp, funciona perfecto, si quieres te lo envio por mail
24 septiembre, 2008 at 11:08 am
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!
25 septiembre, 2008 at 7:53 pm
Muito bom o blog! Parabens!
14 octubre, 2008 at 4:59 am
no funciono y eso que tengo smtp.
16 octubre, 2008 at 2:01 pm
Recuerda que esto requiere un server que soporte php y no te olvides de modificar las lineas de tu as con tu email
26 octubre, 2008 at 7:15 pm
disculpe que archivo hay que modificar en el formulario gracias
29 octubre, 2008 at 11:20 pm
En estas lineas debes modificar el email a donde van los mensajes!
8 noviembre, 2008 at 12:36 pm
no me funciona…. podrias enviar los archivos… gracias…
23 diciembre, 2008 at 3:05 pm
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??
26 diciembre, 2008 at 4:19 pm
Variables.subject = “aca va el tema, por ejemplo
: mensaje desde la web”
30 marzo, 2009 at 8:34 pm
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.
10 junio, 2009 at 11:40 pm
exelente aporte, ahi q checar la descarga
14 julio, 2009 at 10:27 pm
Gracias Leo, tus tutoriales son un lujo.
14 julio, 2009 at 10:29 pm
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.
9 noviembre, 2009 at 11:58 am
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,
19 enero, 2010 at 11:46 pm
leo no puedo hacer funcionar el formulario, me arroja error, he seguido los pasos descritos pero nada, necesito una mano
20 enero, 2010 at 1:49 am
Si podes decime que tipo de error, gracias!
16 febrero, 2010 at 7:27 pm
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
1 marzo, 2010 at 7:43 am
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
23 junio, 2010 at 6:45 pm
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.
24 junio, 2010 at 5:58 pm
Ya lo he solucionado, cambiando lo inicial por esto:
Gracias igualmente.
5 agosto, 2010 at 6:21 pm
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?
5 agosto, 2010 at 6:26 pm
q es lo inicial para usted?
1 septiembre, 2010 at 1:35 am
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?
24 octubre, 2010 at 5:25 pm
a mi tambien me sale “error al enviar”
Y creo haber seguido todos los pasos
30 octubre, 2010 at 9:40 pm
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”;
30 octubre, 2010 at 9:53 pm
LISTO !!!! encontré el error en el PHP en lugar de poner $form ponía from…jajaj !!! esgenial gracias
15 noviembre, 2010 at 12:22 pm
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!
23 enero, 2011 at 10:36 pm
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!!!
21 abril, 2011 at 10:53 am
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()
30 abril, 2011 at 6:21 pm
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?
2 junio, 2011 at 12:49 pm
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
12 octubre, 2011 at 1:02 pm
GRACIAS LEO !!
Sos mi guru de la web…
29 octubre, 2011 at 9:14 pm
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
1 noviembre, 2011 at 12:46 pm
Muchas Gracias me funciono de maravilla.
24 marzo, 2012 at 1:21 pm
Gracias Leo, me sirvió de mucho, saludos!
Ever
21 abril, 2012 at 2:09 pm
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.
12 junio, 2012 at 3:17 pm
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!
12 junio, 2012 at 3:20 pm
tengo la esperanza de poder mandarte mi archivo de flash y que me ayudes te dejo mi correo luis14_ob@hotmail.com
24 agosto, 2012 at 3:04 am
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!
8 mayo, 2013 at 12:48 am
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