Comunidad de diseño web y desarrollo en internet online

Problema con envio de formulario con Flash AS3 y PHP

Citar            
MensajeEscrito el 06 Mar 2009 05:05 pm
Buenas, estoy realizando una web en Flash CS3 (AS3) que contiene un formulario, que al enviarlo deberia conectar con un archivo PHP que es el que manda las variables al correo electrónico correspondiente. Antes había hecho un formulario parecido (para otra web) y me enviaba los datos correctamente. Pero el problema es que en este formulario no envia nada, ni me da ningún error de envío. Por alguna razón, no envía nada. He pensado que podría ser porque he insertado en el formulario varios combobox, y que PHP no interprete bien los valores de estas variables, ¿Podría ser?

El código en el fotograma del formulario, está en ActionScript 3:

Código :

//Función que se ejecuta al presionar el botón enviar.
function irAEnviar(event:MouseEvent):void {
//Valida los campos obligatorios
    if (email.text == "") {
      email.setFocus();
      lbError.text = "Ingresa un correo electrónico válido.";
   } else if (alojamiento.selectedLabel == "") {
      alojamiento.setFocus();
      lbError.text = "Selecciona un alojamiento.";
    } else if (personas.text == "") {
      personas.setFocus();
      lbError.text = "Ingresa el número de personas.";
    } else if (dia1.selectedLabel == "") {
      dia1.setFocus();
      lbError.text = "Selecciona un día de entrada.";
    } else if (mes1.selectedLabel == "") {
      mes1.setFocus();
      lbError.text = "Selecciona un mes de entrada.";
   } else if (dia2.selectedLabel == "") {
      dia2.setFocus();
      lbError.text = "Selecciona un día de salida.";
    } else if (mes2.selectedLabel == "") {
      mes2.setFocus();
      lbError.text = "Selecciona un mes de salida.";
   } else {
      lbError.text = "";
      
   //Creamos misVariables la cual contendrá nuestros campos.
   var misVariables:URLVariables = new URLVariables();

   //Definimos los campos y les agregamos el valor de las cajas de texto.
   misVariables.nombre = nombre.text;
   misVariables.telefono = telefono.text;
   misVariables.email = email.text;
   misVariables.alojamiento = alojamiento.selectedLabel;
   misVariables.personas = personas.text;
   misVariables.dia1 = dia1.selectedLabel;
   misVariables.mes1 = mes1.selectedLabel;
   misVariables.dia2 = dia2.selectedLabel;
   misVariables.mes2 = mes2.selectedLabel;
   misVariables.comen = comen.text;

   //Creamos la instancia pedido que contendrá los datos de envío.
   var pedido:URLRequest = new URLRequest();

   //Pasamos los datos al pedido, el método de envío y le cargamos misVariables.
   pedido.url = "formulario.php";
   pedido.method = URLRequestMethod.POST;
   pedido.data = misVariables;

   //Creamos la instancia cargador.
   var cargador:URLLoader = new URLLoader();

   //Damos formato de Variables a cargador .
   cargador.dataFormat = URLLoaderDataFormat.VARIABLES;

   //Listener de cargador que espera se COMPLETE la carga para ejecutar la función completeHandler.
   cargador.addEventListener(Event.COMPLETE, completeHandler);

   //intentamos cargar el pedido y si hay algún error lo detectamos
   try {
      cargador.load(pedido);
   } catch (error:Error) {
      lbError.text= "Error en el envío";
   }
      //Aquí obtenemos la respuesta del PHP para confirmar en flash que todo salió bien o mal.
   function completeHandler(event:Event):void {
      lbError.text=event.target.data.respuestaPHP;
   }
}
}
//Listener que está esperando el Click en el btEnviar para ejecutar la función irAEnviar
enviar.addEventListener(MouseEvent.CLICK, irAEnviar);


Y este es el cógigo en PHP:

Código :

<?php 
 
    $nombre = $HTTP_POST_VARS["nombre"] . "\n"; 
   $telefono = $HTTP_POST_VARS["telefono"] . "\n";
    $email = $HTTP_POST_VARS["email"] . "\n";
   $alojamiento = $HTTP_POST_VARS["alojamiento"] . "\n";
   $personas = $HTTP_POST_VARS["personas"] . "\n";
   $dia1 = $HTTP_POST_VARS["dia1"] . "\n";
   $mes1 = $HTTP_POST_VARS["mes1"] . "\n";
   $dia2 = $HTTP_POST_VARS["dia2"] . "\n";
   $mes2 = $HTTP_POST_VARS["mes2"] . "\n";
   $comen = $HTTP_POST_VARS["comen"] . "\n";

$cuerpo = utf8_decode($cuerpo);   
$nombre = utf8_decode($nombre);
$email = utf8_decode($email);
$alojamiento = utf8_decode($alojamiento);
$mes1 = utf8_decode($mes1);
$mes2 = utf8_decode($mes2);
$comen = utf8_decode($comen);
$cuerpo = "El usuario ".$nombre." ha realizado la siguiente consulta:
Solicita alojamiento en ".$alojamiento." para ".$personas." persona(s) desde el día ".$dia1." de ".$mes1." hasta el ".$dia2." de ".$mes2."
".$comen." 
Teléfono de contacto: ".$telefono.""

   if(mail("[email protected]","Formulario recibido",$cuerpo,"FROM: $email")){
      echo "respuestaPHP=Formulario enviado";
   }else{
      echo "respuestaPHP=Error, formulario no enviado";
   };

?>


A ver si podeis echarme una mano, por favor, es urgente.
Muchas gracias.

Por joseureba

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Mar 2009 02:22 pm
Pon mejor la URL donde esta el formulario asi lo probamos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Mar 2009 07:26 pm
Ya está solucionado. Resulta que era un problema de Hotmail, no sé porqué no recibia el formulario en mi cuenta de Hotmail. Probé con otra cuenta (de Andaluciajunta) y ya va perfectamente.
El código PHP que me funciona es este:

Código :

<?php
    $cuerpo = "Formulario enviado\n"; 
    $cuerpo .= "Alojamiento: " . $HTTP_POST_VARS["alojamiento"] . "\n"; 
    $cuerpo .= "Personas: " . $HTTP_POST_VARS["personas"] . "\n"; 
   $cuerpo .= "Dia entrada: " . $HTTP_POST_VARS["dia1"] . "\n";
   $cuerpo .= "Mes entrada: " . $HTTP_POST_VARS["mes1"] . "\n";
   $cuerpo .= "Dia salida: " . $HTTP_POST_VARS["dia2"] . "\n";
   $cuerpo .= "Mes salida: " . $HTTP_POST_VARS["mes2"] . "\n";
   $cuerpo .= "Persona de contacto: " . $HTTP_POST_VARS["nombre"] . "\n";
   $cuerpo .= "Telefono: " . $HTTP_POST_VARS["telefono"] . "\n";
    $cuerpo .= "Comentario: " . $HTTP_POST_VARS["comen"] . "\n";
   $email = $HTTP_POST_VARS["email"] . "\n";

    //mando el correo... 
   if(mail("[email protected]","Formulario recibido",utf8_decode($cuerpo),"FROM: $email")){
      echo "respuestaPHP=Formulario enviado";
   }else{
      echo "respuestaPHP=Error, formulario no enviado";
   };
?>


Saludos, y muchas gracias por responder.

Por joseureba

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Mar 2009 09:01 pm
En Hotmail, mira en la bandeja de spam, o basura (trash folder)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.