Foros del Web » Creando para Internet » Flash y Actionscript »

formulario de flash que se envia por php

Estas en el tema de formulario de flash que se envia por php en el foro de Flash y Actionscript en Foros del Web. Bien, Una vez comprobado esto seguimos. Primero trabajaremos el Fla: Creamos una nueva película, sobre el escenario creamos 4 campos de texto de entrada InputText ...
  #1 (permalink)  
Antiguo 30/08/2007, 16:16
 
Fecha de Ingreso: agosto-2007
Mensajes: 1
Antigüedad: 17 años, 2 meses
Puntos: 0
formulario de flash que se envia por php

Bien,
Una vez comprobado esto seguimos.
Primero trabajaremos el Fla:
Creamos
una nueva película, sobre el escenario creamos 4 campos de texto de
entrada InputText y les damos nombre de instancia, y creamos 2 botones "enviar_btn" y "borrar_btn"
Crearemos
2 funciones una para enviar las variables a PHP y otra función para
borrar los datos del formulario.
Función enviar:
Código:
enviar = function () {
if (email_txt.text.length && nombre_txt.length && titulo_txt.length && mensaje_txt.length) {
if (email_txt.text.indexOf("@") != -1 && email_txt.text.indexOf(".") != -1) {
form_lv = new LoadVars();
form_lv.nombre = nombre_txt.text;
form_lv.mail = email_txt.text;
form_lv.mensaje = mensaje_txt.text;
form_lv.titulo = titulo_txt.text;
form_lv.sendAndLoad("http://www.lansite.com.mx/send.php", form_lv, "POST");
mensaje_txt.text = "Enviando Mensaje..";
nombre_txt.text = "";
email_txt.text = "";
titulo_txt.text = "";
form_lv.onLoad = function() {
if (this.estatus == "ok") {
mensaje_txt.text = "Tu mensaje fue enviado...";
nombre_txt.text = "";
email_txt.text = "";
titulo_txt.text = "";
} else {
mensaje_txt.text = "Problemas con el servidornIntentalo de Nuevo";
}
};
} else {
email_txt.text = "Correo Invalido";
}
} else {
email_txt.text = "Dato Necesario";
nombre_txt.text = "Dato Necesario";
titulo_txt.text = "Dato Necesario";
mensaje_txt.text = "Dato Necesario";
}
};
Código:
if (email_txt.text.length && nombre_txt.length && titulo_txt.length && mensaje_txt.length)
Con esto comprobamos que al presionar el boton todos los campos de texto no
estén vacíos, si esta condición no se cumple en los campos
aparecerá el texto "Dato Necesario";
Código:
if (email_txt.text.indexOf("@") != -1 && email_txt.text.indexOf(".") != -1) {
Esta comprobación revisa que el mail introducido tenga la @ y
un punto .;
Si ambas condiciones son ciertas creamos una instancia de la clase LoadVars
y asignamos variables para enviar a PHP
Código:
form_lv_lv = new LoadVars();
form_lv.nombre = nombre_txt.text;
form_lv.mail = email_txt.text;
form_lv.mensaje = mensaje_txt.text;
form_lv.titulo = titulo_txt.text;
form_lv.sendAndLoad("send.php", form_lv, "POST");
mensaje_txt.text = "Enviando Mensaje..";
}
Una vez ejecutado el Script PHP y si todo salio bien, este, regresara una variable
llamada status que tomaremos con el evento onLoad
Código:
form_lv.onLoad = function() {
if (this.estatus == "ok") {
mensaje_txt.text = "Tu mensaje fue enviado. nGracias.... =)";
nombre_txt.text = " ";
email_txt.text = " ";
titulo_txt.text = " ";
} else {
mensaje_txt.text = "Problemas con el servidornIntentalo de Nuevo";
}
};
Función borrar:
Con esta función solo borraremos los datos que tengan los campos de texto.
Código:
borrar = function () {
nombre_txt.text = " ";
email_txt.text = " ";
mensaje_txt.text = " ";
titulo_txt.text = " ";
};
Esto no necesita mucha explicación =P
Por ultimo asignamos dichas funciones a los eventos de los botones
Código:
enviar_btn.onRelease = enviar;
borrar_btn.onRelease = borrar;
Y esto es todo en Flash.. Seguimos con el PHP..
Código:
<?php
if(isset($_POST["nombre"]) && isset($_POST["titulo"]) isset($_POST["email"])
isset($_POST["mensaje"]) ){
$fecha = date("d-M-y H:i");
$mymail = "[email protected]";
$subject = "Desde el Sitio.. =)";
$contenido = $nombre." Escribio :n";
$contenido .= $mensaje."nn";
$contenido .= "el mensaje se escribio el ".$fecha;
$header = "From:".$mail."nReply-To:".$mail."n";
$header .= "X-Mailer:PHP/".phpversion()."n";
$header .= "Mime-Version: 1.0n";
$header .= "Content-Type: text/plain";
mail($mymail, $subject, utf8_decode($contenido) ,$header);
echo "&estatus=ok&";
}
?>

La función isset verifica que una variable exista, en este caso verificamos
que las cuatro variables existan antes de enviar el mail.
Los parámetros de la función mail de PHP son:
• Para: Correo destino. En este caso $mymail
• Titulo: Titulo del Correo. En este caso $subject
• Mensaje: Cuerpo del correo. En este caso $contenido
• Headers o cabeceras: Son las cabeceras del correo, donde se especifica
el tipo de contenido (texto plano, texto HTML), entre muchas otras opciones
que no mencionare.
Una vez enviado el mail el PHP regresa la variable status que Flash interpretara…
Si dicha variable existe es que todo funcióno… =)
NOTA: Para enviar un correo en formato HTML solo necesitas
escribir el cuerpo del mensaje con dicho formato (HTML) y en los headers especificarlo,
esto se hace cambiando Content-Type: text/plain por Content-Type:
text/html

hola todos, este es el codigo que estoy utilizando, ya lo subi a mi servidor pero a la hora de mandar el mail me sale "problemas con el servidor" alguien me podria ayudar y decirme donde estot mal, pro favor.

gracias
  #2 (permalink)  
Antiguo 31/08/2007, 09:08
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Re: formulario de flash que se envia por php

Hola, te manda los mails???

Bueno el error que descrubir en este script, y se los comente a mas o menos 4 esta semana, por que les pasa lo mismo que a vos.Como a mi la 1era vez que lo hice, hara 1 mes atras.Pero lo resolvi...

En el condicional if (this.estatus =="ok") pone un = y no 2 ==.

Esto esta mal:

if (this.estatus =="ok")

Esto esta bien:

if (this.estatus ="ok")

Es un error pavo del script, pero trae muchos problemas.A mi me llegaban igual los mails a vos???

BYE
  #3 (permalink)  
Antiguo 31/08/2007, 09:11
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 4 meses
Puntos: 12
Re: formulario de flash que se envia por php

No, no...

= es un operador de asignación.

== es un operador de igualdad.

En una cláusula condicional hay que usar el segundo.

Saludos!
  #4 (permalink)  
Antiguo 31/08/2007, 09:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Re: formulario de flash que se envia por php

Claro Mahalo, el error esta en el modo de aplicacion en este caso...O eso creo...

Se que es válido este parametro == como tambien -= y tambien += y tambien !=.

Vos decis que hay que usar cual???

=="ok" o ="ok"

Creo q en este caso el 2do, el = "ok".

O me equivoco?? ya que asi me funciono, con "ok"...
  #5 (permalink)  
Antiguo 31/08/2007, 09:37
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 4 meses
Puntos: 12
Re: formulario de flash que se envia por php

En un condicional, ==:

if (a==b) {...

En una asignación, =:

a=5;
  #6 (permalink)  
Antiguo 31/08/2007, 10:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Re: formulario de flash que se envia por php

Ah entonces por que me manda los mails y me sale problemas con el servidor???Yo tengo el mismo script
  #7 (permalink)  
Antiguo 31/08/2007, 12:44
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 18 años, 1 mes
Puntos: 30
Re: formulario de flash que se envia por php

Cita:
hola todos, este es el codigo que estoy utilizando, ya lo subi a mi servidor pero a la hora de mandar el mail me sale "problemas con el servidor" alguien me podria ayudar y decirme donde estot mal, pro favor.

gracias
si copiaste y pegaste ese codigo todo esta bien, el problema puede ser que tu servidor no tenga php o que no este habilitada la funcion mail.

trata de estudiar para que sirven las acciones metodos etc.. y comprenderlo sobre todo, haz un formulario tu mismo, empieza con lo basico , hacer un hola mundo con flash y php, no quieras hacer cosas grandes si no sabes como funciona (copiar y pegar).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:22.