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

Es verdad, no me di cuenta...

Lo único que no está bien en el script php es esta línea:

Código PHP:
mail($email,$asunto,$mensaje,"MIME-Version: 1.0\nContent-type: text/html; charset=UTF-8\nFrom: $empresa <&Email>"
tienes que susituir el & que está delante de email por $ y la primera 'E' pasarla a minúsculas...

Código PHP:
mail($email,$asunto,$mensaje,"MIME-Version: 1.0\nContent-type: text/html; charset=UTF-8\nFrom: $empresa <$email>"
Pero ya no sé de verdad, porque eso no debería de afectar a nada.

Lo único que no me ha quedado claro es si el trace lo haces al onLoad del objeto que recibes o al enviar.

Si no lo has hecho en el onLoad, haz estos cambios porque entonces seguiríamos sin saber si flash recibe, lo cual es muy importante para saber dónde está el error.
Código PHP:
on (release){
    
var_nombre=this.nombre.text;
    
var_correo=this.correo.text;
    
var_telefono=this.telefono.text;
    
var_msg=this.mensaje.text;
    
var_error=""
    
if(var_nombre=="" || var_correo=="" || var_msg==""){
        if(
var_nombre==""){var_error="Debe introducir un nombre.";}
        if(
var_correo==""){var_error=var_error+"Debe introducir un correo válido.";}
        if(
var_msg==""){var_error=var_error+"Debe introducir un mensaje.";}        
        
gotoAndStop(10);
    }else{
        if(
var_correo.indexOf("@") != -1){
            
//enviar datos a php
            
datos=new LoadVars();
            
recibir=new LoadVars();  //esta línea es nueva
            
datos.nombre=var_nombre;
            
datos.correo=var_correo;
            
datos.telefono=var_telefono;
            
datos.msg=var_msg;
            
enviar="http://www.midireccion/flash/correo.php";
            
datos.sendAndLoad(enviar,recibir,"POST"); //esta línea cambia
            
trace (enviar);
            
trace (datos);
            
gotoAndStop(5);
        }else{
            
gotoAndStop(10);
            
var_error="Ha introducido un correo erroneo";
        }
        

    }

y luego pon en una capa código en el frame que estén los botones:
Código PHP:
recibir.onLoad=function()
{
            
trace(recibir);

Es que he interpretado que los datos que me ponía lo hacias en el onLoad del objeto que recibe los datos, pero ahora creo por lo que has escrito que no lo has hecho así, sino que has hecho trace antes de enviar.

Porque el código php esta bien creo yo, excepto el error ese en la opción de las cabeceras(error que no debería de afectar al envio en principio)

Lo único que yo cambiaría sería:

Código PHP:
$nombre=$HTTP_POST_VARS["nombre"];
$correo=$HTTP_POST_VARS["correo"];
$telefono=$HTTP_POST_VARS["telefono"];
$msg=$HTTP_POST_VARS["msg"]; 
Código PHP:
$nombre=$_POST["nombre"];
$correo=$_POST["correo"];
$telefono=$_POST["telefono"];
$msg=$_POST["msg"]; 
Pero no creo que eso afecte...

En la última línea de la función mail de php tienes cambiarla por esto:

Código PHP:
echo "enviado=";
if(
mail($email,$asunto,$mensaje,"MIME-Version: 1.0\nContent-type: text/html; charset=UTF-8\nFrom: $empresa <$email>"))
echo 
"si";
else echo 
"no";
echo 
"&nombre=".$nombre."&fin=si"
Esto se hace para que php devuelva datos a flash.

Con esto y con el trace que hemos añadido:

Si flash recibe 'enviado=no' es que hay un error en el envio...

Y si no te muestra el nombre que introdujiste es que no se reciben bien los datos.


Un saludo
__________________
[+]
[+]

Última edición por yoseman; 06/04/2008 a las 07:09