Comunidad de diseño web y desarrollo en internet online

Flash no funciona cuando PHP presenta un error

Citar            
MensajeEscrito el 11 Oct 2013 03:22 pm
Buenas,

Estoy haciendo una pequena aplicacion para conectar flash con mySQL mediante PHP. Cuando la consulta a mySQL esta bien, todo funciona perfecto. Sin embargo, cuando fuerzo algun error (con la intención de que me regerse el mensaje de error) flash se queda esperando la respuesta del PHP y nunca muestra el mensaje de error.

El PHP genera un xml con la data si todo es correcto, caso contrario genera un xml con el codigo y descripcion del ERROR:

Código PHP :

<?php
   header("Cache-Control: no-store, no-cache, must-revalidate");
   require_once("conectar_sql.php");

   $consulta = "SELECT * FROM SIS_LOCALIDAD WHERE dsc_activo = 'SI' ORDER BY `SIS_LOCALIDAD`.`dsc_localidad` ASC";
   $resultado = $mysqli->query($consulta);
   
   if($resultado)
   {
      header("Content-Type: text/xml");
      echo  "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
      echo  "<Resultados>\n";
         
     while ($fila = $resultado->fetch_assoc())
     {
        echo  "<entrada>\n";
        echo  "<codigo>". $fila['cod_localidad'] . "</codigo>\n";
        echo  "<descripcion>" . $fila['dsc_localidad'] . "</descripcion>\n";
        echo  "</entrada>\n";
     }
     echo  "</Resultados>";
   }
   else
   {
      header("Content-Type: text/xml");
      echo  "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
      echo  "<Resultados>\n";
      echo  "<entrada>\n";
      echo  "<codigo>". "ERROR" . "</codigo>\n";
      echo  "<descripcion>" . "NO SE PUDO REALIZAR LA CONSULTA" . "</descripcion>\n";
      echo  "</entrada>\n";
   }
   $mysqli->close();   
?>


En flash tengo:

Código ActionScript :

_loader.addEventListener(Event.COMPLETE, Respuesta);
_loader.addEventListener(IOErrorEvent.IO_ERROR, RespuestaError);
_loader.load(_request);
      
public function Respuesta(e:Event)
{
   var xml:XML = new XML(e.target.data);
   var campos:XMLList = xml..entrada;
   var xmlDescripcion:Array = new Array();
   var xmlCodigo:Array = new Array();
   
        if (xml..codigo[0] == "ERROR")
        {
            miMC.Notificaciones(xml..descripcion[0], 3);
        }
        else
        {      
         for (var i:uint=0; i<xml..codigo.length(); i++)
         {
               xmlDescripcion.push(xml..descripcion[i]);
              xmlCodigo.push(xml..codigo[i]);
              miCombo.addItem( { label: xmlDescripcion[i], data:xmlCodigo[i] } );
         }
   }      
   miMC.holder.visible = false;
}
         
public function RespuestaError(e:Event)
{
   miMC.Notificaciones("ERROR CARGANDO EL XML", 3);
}


El error que "fuerzo" es cambiando el nombre de la tabla en la consulta en el PHP, le coloco un nombre que no existe para que me retorne un error.
Muchas gracias por su tiempo y ayuda

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 11 Oct 2013 07:04 pm
El SQL esta hardcodeado, no veo como puedes forzar el error. De todas formas me inclino a creer que es un error de PHP y no el else de tu logica. Herramienta fundamental para ver que esta pasando un sniffer, recomiendo charlesproxy.com

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.