Comunidad de diseño web y desarrollo en internet online

Problema recibiendo data de PHP

Citar            
MensajeEscrito el 29 Feb 2012 09:55 am
Hola a todos,

tengo un problemilla que me está volviendo un poco loco, estoy haciendo un login de una app y envío user y password a un php para comprobarlo, el código AS es este:

Código ActionScript :

function enviaFormulario(evento:MouseEvent):void{
   var request:URLRequest = new URLRequest (rutaTMP+"php/compruebaUser.php");
   request.method = URLRequestMethod.POST;
                
   var variables:URLVariables = new URLVariables();                   
   variables.usuario = formularioLogin.login.text;
   variables.contrasena = formularioLogin.contrasena.text;       
   request.data = variables;
                
   loaderLogin = new URLLoader ();
   loaderLogin.addEventListener(Event.COMPLETE, loginCargado);
   loaderLogin.dataFormat = URLLoaderDataFormat.VARIABLES;
   loaderLogin.load(request);   
}


Básicamente, en el php hago la comprobación y si algo va mal, devuelvo "acceso=ko". Si todo está bien, devuelvo "acceso=ok" mas otros datos del usuario... El caso es que el loaderLogin.data me pilla la info del PHP pero con un montón de morralla, recibo esto:

%3C%21DOCTYPE%20html%20PUBLIC%20%22%2D%2F%2FW3C%2F%2FDTD%20XHTML%201%2E0%20Transitional%2F%2FEN%22%20%22http%3A%2F%2Fwww%2Ew3%2Eorg%2FTR%2Fxhtml1%2FDTD%2Fxhtml1%2Dtransitional%2Edtd%22%3E%0D%0A%3Chtml%20xmlns=%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F1999%2Fxhtml%22%3E%0D%0A%3Chead%3E%0D%0A%3Cmeta%20http%2Dequiv%3D%22Content%2DType%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf%2D8%22%20%2F%3E%0D%0A%3Ctitle%3EDocumento%20sin%20t%C3%ADtulo%3C%2Ftitle%3E%0D%0A%3C%2Fhead%3E%0D%0A%3Cbody%3E%0D%0Aacceso%3Dko%3C%2Fbody%3E%0D%0A%3C%2Fhtml%3E

Se puede ver que recibo lo que tengo que recibir, pero al meterme tanta basura, no puedo acceder a esa info como loaderLogin.data.acceso. Me imagino que podré hacer una function para parsear el código y listo calisto, pero tambien me imagino que tiene que haber alguna otra solución más lógica y/o mas limpia para recibir la información de una manera más correcta...

Dejo el código php por si hay algo aquí, que no soy ningún ninja en esto :)

Código PHP :

<?php
echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>';

   include("conec.php");
   $usuario = $_POST["usuario"];
   $contrasena = $_POST["contrasena"];

   $consulta = "SELECT * FROM usuarios WHERE usuario='".$usuario."' AND contrasena='".$contrasena."' LIMIT 1";
   $peticion = mysql_query($consulta);
   $resultado = mysql_fetch_array($peticion);

   if(!$resultado){
      echo "acceso=ko";
   }else{
      echo "acceso=ok<br/>";
      echo "nombre=".$resultado["nombre"]."<br/>";
      echo "curso=".$resultado["curso"]."<br/>";
      echo "colegio=".$resultado["colegio"]."<br/>";
      echo "poblacion=".$resultado["poblacion"]."<br/>";
   }
echo '</body></html>';
?>



Gracias de antemano y un saludo.

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 29 Feb 2012 10:35 am
tiene pinta de que es el formato de datos

has probado

Código ActionScript :

loaderLogin.dataFormat = URLLoaderDataFormat.TEXT;

quizas te solucione el problema

espero que te sirva

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Feb 2012 11:05 am
Gracias por la respuesta Yonomimi,

acabo de probarlo y efectivamente llega mas limpio, la putada es que no puedo tratar los valores que recibo como variables, tendría que andar con indexOf para buscar los nombres de las mismas y "recortar" los valores. Tiene que ser algo rarito que estoy haciendo pero no veo donde...

De todas formas, como te he dicho, gracias, al menos ahora tendré menos problemas si tengo que recurrir a sacarlas al haberme quitado toda la moralla :)

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 29 Feb 2012 11:34 am
efectivamente ...esta en el php
como no es algo para enseñar puede ponerlo asi

Código PHP :

      echo "acceso=ok"."\n";
      echo "nombre=".$resultado["nombre"]."\n";
      echo "curso=".$resultado["curso"]."\n";
      echo "colegio=".$resultado["colegio"]."\n";
      echo "poblacion=".$resultado["poblacion"]."\n";
      echo "\n";

asi puedes separar las partes generando una tabla buscando "\n"

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Feb 2012 11:41 am
Pues lo he probado y sigue igual, y de todas formas, en el primer bloque del if no uso ningún br ni similar y es donde está saliendo todo... y teóricamente sólo debería sacar "acceso=ko".

Dios, no se que narices estoy haciendo para que esto vaya así... arrrgggggg.

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 29 Feb 2012 11:53 am
puedes poner lo que te sale

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Feb 2012 12:04 pm
Esto es lo que me saca el trace del loaderLogin.data

Código HTML :

%3C%21DOCTYPE%20html%20PUBLIC%20%22%2D%2F%2FW3C%2F%2FDTD%20XHTML%201%2E0%20Transitional%2F%2FEN%22%20%22http%3A%2F%2Fwww%2Ew3%2Eorg%2FTR%2Fxhtml1%2FDTD%2Fxhtml1%2Dtransitional%2Edtd%22%3E%0D%0A%3Chtml%20xmlns=%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F1999%2Fxhtml%22%3E%0D%0A%3Chead%3E%0D%0A%3Cmeta%20http%2Dequiv%3D%22Content%2DType%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf%2D8%22%20%2F%3E%0D%0A%3Ctitle%3EDocumento%20sin%20t%C3%ADtulo%3C%2Ftitle%3E%0D%0A%3C%2Fhead%3E%0D%0A%3Cbody%3E%0D%0Aacceso%3Dko%3C%2Fbody%3E%0D%0A%3C%2Fhtml%3E

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 29 Feb 2012 12:13 pm
vaya tela...te sale el "echo" que haces al principio...juas

mira a ver si lo quitas o le pones unas // a ver si te sale

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Feb 2012 12:16 pm
dejalo asi

Código PHP :

<?php
   include("conec.php");
   $usuario = $_POST["usuario"];
   $contrasena = $_POST["contrasena"];

   $consulta = "SELECT * FROM usuarios WHERE usuario='".$usuario."' AND contrasena='".$contrasena."' LIMIT 1";
   $peticion = mysql_query($consulta);
   $resultado = mysql_fetch_array($peticion);

   if(!$resultado){
      echo "acceso=ko";
   }else{
      echo "acceso=ok<br/>";
      echo "nombre=".$resultado["nombre"]."<br/>";
      echo "curso=".$resultado["curso"]."<br/>";
      echo "colegio=".$resultado["colegio"]."<br/>";
      echo "poblacion=".$resultado["poblacion"]."<br/>";
   }
?>

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Feb 2012 12:27 pm
He dejado el .php con sólo el código exclusivo del php, quitando el doctype, html, head y body y así va perfecto.

Muchas gracias por el tip Yonomimi, eso me ha hecho probar esto y ahora va perfecto :)

Un saludo y gracias de nuevo!

Por torpedete

85 de clabLevel



Genero:Masculino  

chrome

 

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