Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/04/2008, 22:53
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: Paso de variables desde formulario Flash a PHP

Imaginemos que en el formulario que rellena tu usuario tienes 4 campos de introducción de texto llamados respectivamente:

txt_nombre
txt_email
txt_telefono
txt_mensaje

Luego tienes un objeto de tipo LoadVars llamado enviar que utilizarás en tu función sendAndLoad, y otro (tb de tipo LoadVars) para recibir llamado objeto_recibir...

Y finalmente un botón llamado b, que es el que iniciaría el envio.

Algo así funcionaría con este código actionscript:

Código PHP:
enviar=new LoadVars();
objeto_recibir=new LoadVars();

b.onRelease=function()
{
enviar.nombre=txt_nombre.text;
enviar.email=txt_email.text;
enviar.telefono=txt_telefono.text;
enviar.mensaje=txt_mensaje.text;
enviar.sendAndLoad("tufichero.php",objeto_recibir,"POST");
}
objeto_recibir.onLoad=function()
{
if (
objeto_recibir.enviado=="si")
trace('se envio el email')
else
trace('no se envio el email')

Bien en esta situación los datos al script en PHP se deberían de enviar correctamente.

La forma de leer correctamente los datos enviados desde flash con php es con el array $_POST, puesto que hemos seleccionado en la función sendAndLoad de utilizar el método de envio POST

Es decir con $_POST['nombre'] estarías recuperando el valor que tu usuario introdujo en la peli flash para su nombre y así con cada definición del objeto enviar (nombre,email,telefono,mensaje)

la función mail de PHP recibe al menos tres parámetros: para, asunto y mensaje.

Imaginemos que quisieras poner todo concatenado y sin florituras en el mensaje:

Código PHP:
<?
$mail
="[email protected]";
$asunto="tu asunto";
$mensaje="Nombre:".$_POST['nombre']."\n";
$mensaje.="Email:".$_POST['email']."\n";
$mensaje.="Telefono:".$_POST['telefono']."\n";
$mensaje.="Mensaje:".$_POST['mensaje']."\n";

echo
"enviado=";
if(
mail($mail,$asunto,$mensaje))
echo
"si"
else 
echo
"no";
echo
"&fin=si";?>
De esta forma y si tienes bien configurado el servidor para que pueda enviar emails, tu película debería de registrar en el onLoad de objeto_recibir lo que el script php le pase(enviado=si&fin=si sito todo va bien y si no enviado=no&fin=si)

Entonces ya con la función de onLoad puedes actuar dependiendo de si hubo error o no. Simplemente lees objeto_recibir.enviado en el onLoad como te he puesto en el código actionscript-.

Y se debería de enviar el mail.

Un saludo.
__________________
[+]
[+]

Última edición por yoseman; 04/04/2008 a las 23:04