Comunidad de diseño web y desarrollo en internet online

Problema con PHP y Flash

Citar            
MensajeEscrito el 20 Ago 2005 08:46 pm
Holas!!
Les escribo pk tengo un problema con un script php, y un pekeño programa en AS... les muestro los dos:

PHP

Código :

<?php
//Obtengo los datos del archivo .swf
$usuario = $_POST["usuario"];
$pass = $_POST["passw"];

/*Ya tengo el nombre de usuario y la contraseña ingresados a traves de flash. Ahora lo que me resta es buscarlos en la basede datos de MySQL*/

//Me conecto con la base de datos

$conn = mysql_connect("http://localhost","root","andratx");

mysql_select_db("epicco",$conn);

/*Sentencia SQL para buscar un usuario con los datos obtenidos del .swf*/

$ssql = "SELECT * FROM usuarios WHERE usuario = '$usuario' and passw = '$pass'";

//Ejecuto la sentencia

$rs = mysql_query($ssql,$conn);

/*Ahora debo chequear cuando tengo una autentificacion correcta*/

if(mysql_num_rows($rs)!=0){
  //usuario y contraseña validos
  //defino sesion y guardo los datos
  /*session_start();
  session_register("autentificado");*/
  //$autentificado = "true";
  echo "autentificado=si";
}
elseif(mysql_num_rows($rs)=0){
  echo "autentificado=no";
}

//Cierro la coneccion con la DB

mysql_free_result($rs);
mysql_close($conn);

?>


AS 2.0:

Código :

//Defino el objeto LoadVars que va a enviar la info a php
var enviar_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
function enviarUsrPass() {
   enviar_lv.usuario = usuario.text;
   enviar_lv.passw = contrasenia.text;
   //Envio los datos y recibo respuesta
   enviar_lv.sendAndLoad("sesiones/autentificar.php", recibir_lv, "POST");
};
recibir_lv.onLoad = function(exito) {
   if (exito) {
      if (this.autentificado = "si") {
         errores.text = "Usuario y contraseña correctos...";
         loadMovie("paginaacciones/acciones/acciones.swf",70);
         unloadMovie(50);
         //_root.loadMovieNum("paginaAcciones/acciones/acciones.swf", _level60);
      } 
      if(this.autentificado = "no") {
         errores.text = "Usuario y contraseña incorrectos...";
      }
   } else {
      errores.text = "Error en la comunicacion... Contacte al proveedor...";
   }
};
/*Defino el Listener que me detecta cuando es presionado el 
boton*/
/*
clickear = new Object();
clickear.click = function() {
   enviarUsrPass();
};
aceptar.addEventListener("click", clickear);
*/



El tema es ke tengo un boton, y dos textinput... al presionar el boton uso el objeto LoadVars para ke el script php me buske en la base de datos si el usuario y el pass ingresado son correctos...
Pero hace lo siguiente:

ingrese lo ke ingrese, imprime "Nombre de usuario o contraseña incorrectos..." y ejecuta el loadMovie, y el unloadMovie del "if de autentificacion correcta" (no sabia como expresarme, espero ke entiendan esto ultimo)...
Hace un par de dias ke reviso esto una y mil veces y no entiendo todavia pk no funciona bien...
Si me pueden dar una mano les agradeceria muchisimo!!
Grax!!

Pablito

PD: editado para agregarle las etiquetas code para una mejor lectura

Por _pablito_

Claber

190 de clabLevel



Genero:Masculino  

Argentina

msie
Citar            
MensajeEscrito el 20 Ago 2005 09:28 pm
error aqui en el codigo php:

Código :

if(mysql_num_rows($rs)!=0){
  //usuario y contraseña validos
  //defino sesion y guardo los datos
  /*session_start();
  session_register("autentificado");*/
  //$autentificado = "true";
  echo "autentificado=si";
}
elseif(mysql_num_rows($rs)=0){
  echo "autentificado=no";
}


Especificamente en elseif, esa condicion esta mal formulada porque si es cero le estas asignando 0 porque un = es asignacion, la manera correcta seria ==, aunque si la primera condicion del if es falsa entra al sino y es porque mysql_num_rows($rw) retorna 0 no deberias preguntar algo que ya es cierto

quitale la condicion del elseif. :wink:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 21 Ago 2005 09:24 pm
Hola nuevamente!...
Bueno, esta vez vuelvo a escribir pk estuve testeando el codigo varias veces y comprobe
ke el error no es de parte del php (segun mis pruebas)... Hice un login con html y php
y funciono todo como deberia hacerlo...
Ahora, cuando uso php y flash, flash hace algo mal, al ingresar un usuario y contraseña
incorrectos termina ejecutando las siguientes lineas del codigo ke esta mas abajo:

Código :

               if (this.autentificado == "si") {
                        errores.text = "Usuario y contraseña correctos...";
         loadMovie("paginaacciones/acciones/acciones.swf",70);
         unloadMovie(50);
               }


Como si hubiese ingresado usuario y contraseña correctos...
Ahora, no se si afecte o no... pero aviso ke el movieclip login (como se ve en el codigo
de la linea de tiempo principal del swf) esta adentro de un componente window, y a su vez,
login.swf esta cargado en un nivel del swf ke vendria a ser el index de la pagina...pk la
verdad yo revise el codigo mil veces y todavia no encuentro el pk de ke haga lo ke hace...
Aca les dejo el codigo de todo lo ke es la pelicula:


login (main timeline)


Código :

//Importamos las clases
import mx.managers.PopUpManager
import mx.containers.Window

//Creamos la ventana
var ventana = PopUpManager.createPopUp(this, Window, true, {contentPath:"login"}, true);


//Listener para cuando nuestra ventana se haya creado
alCrear = Object();
alCrear.complete = function(evento){
   ventana.setSize(212, 340);
   ventana.closeButton = true;
   ventana.title = "-->EPICCO Test<--";
}

//Listener para cuando pulsamos el botón cerrar
alCerrar = Object();
alCerrar.click = function(evento){
   evento.target.deletePopUp();
}

//Listener para cuando clicamos fuera de la ventana
alClicarFuera = Object();
alClicarFuera.mouseDownOutside = function(){
   trace("Cierra la ventana antes");
}

//Eventos
ventana.addEventListener("click", alCerrar);
ventana.addEventListener("complete", alCrear);
ventana.addEventListener("mouseDownOutside", alClicarFuera);





login (movieclip)

Código :

//Defino el objeto LoadVars que va a enviar la info a php
var enviar_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
function enviarUsrPass() {
   enviar_lv.usuario = usuario.text;
   enviar_lv.passw = contrasenia.text;
   //Envio los datos y recibo respuesta
   enviar_lv.sendAndLoad("sesiones/autentificar.php", recibir_lv, "POST");
};
recibir_lv.onLoad = function(exito) {
   if (exito) {
      if (this.autentificado == "si") {
         errores.text = "Usuario y contraseña correctos...";
         loadMovie("paginaacciones/acciones/acciones.swf",70);
         unloadMovie(50);
         //_root.loadMovieNum("paginaAcciones/acciones/acciones.swf", _level60);
      } 
      if(this.autentificado == "no") {
         errores.text = "Usuario y contraseña incorrectos...";
      }
   } else {
      errores.text = "Error en la comunicacion... Contacte al proveedor...";
   }
};



autentificar.php

Código :


<?php
//Obtengo los datos del archivo .swf
$usuario = $_POST["usuario"];
$pass = $_POST["passw"];

/*Ya tengo el nombre de usuario y la contraseña ingresados a traves de flash. Ahora lo que me resta es buscarlos en la basede datos de MySQL*/

//Me conecto con la base de datos

$conn = mysql_connect("localhost","root","andratx");

mysql_select_db("epicco",$conn);

/*Sentencia SQL para buscar un usuario con los datos obtenidos del .swf*/

$ssql = "SELECT * FROM usuarios WHERE usuario = '$usuario' and passw = '$passw'";

//Ejecuto la sentencia

$rs = mysql_query($ssql,$conn);

/*Ahora debo chequear cuando tengo una autentificacion correcta*/

if(mysql_num_rows($rs)=!0){
  //usuario y contraseña validos
  //defino sesion y guardo los datos
  /*session_start();
  session_register("autentificado");*/
  
  echo "autentificado=si";
}
else{
  echo "autentificado=no";
}

//Cierro la coneccion con la DB

mysql_free_result($rs);
mysql_close($conn);

?>



Muchas gracias desde ya!...

Pablito

Por _pablito_

Claber

190 de clabLevel



Genero:Masculino  

Argentina

firefox
Citar            
MensajeEscrito el 21 Ago 2005 09:30 pm
ah cierto, se me habia olvidado comentarte, e insisto el error esta el en el php, corrige esto:

extracto del codigo php:

Código :

echo "autentificado=si"; 

cambialo por:

Código :

echo "&autentificado=si"; 

al igual en el echo del else

Código :

echo "&autentificado=no";


fijate flash interpreta las variables las que tienen un & de prefijo seguido de un identificador en tu caso es autentificado y luego el signo =, bueno por supuesto despues el valor de la variable :wink:

corrige eso y cuentame :D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 21 Ago 2005 09:37 pm
Gracias!
Pero, solo por curiosidad... pk termina ejecutando el if flash si "autentificado" no tiene ningun valor definido??

Muchas gracias!!

Pablo

Por _pablito_

Claber

190 de clabLevel



Genero:Masculino  

Argentina

firefox
Citar            
MensajeEscrito el 21 Ago 2005 09:48 pm
ehh bueno es un poquito contradictorio cierto, pero fijate cuando tratas con variables indefinidas el programa toma valores basura y puede ser que coincidan alguna veces, si has tratado con punteros sabras que cuando se te pierde uno puede tomar cualquier valor y eso es peligroso, pero bueno no quiero enredarte con eso de punteros, aunque esa la unica explicación lógica que le puede dar a ese error :crap:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 21 Ago 2005 09:56 pm
Si, entiendo perfectamente... en el secundario vi punteros, y termine aplicandolos en C++ para proyectos ke nos daban para fin de año... pero me resulta raro ke siempre me tire ke el inicio de sesion es correcto...
Grax!!

PAblito

Por _pablito_

Claber

190 de clabLevel



Genero:Masculino  

Argentina

firefox
Citar            
MensajeEscrito el 21 Ago 2005 10:10 pm
bueno sabras que esos punteros se encargan de darle a uno el error más critico :roll:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 23 Ago 2005 09:21 am
if(mysql_num_rows($rs)=!0) yo siempre pongo
if(mysql_num_rows($rs)!=0){ aunque esa no debe ser la causa...

Por passadd

15 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 23 Ago 2005 10:40 pm
No, esa no era la causa hasta donde yo se... Estuve probando el script php con un login hecho en php tmb y funciona perfecto, pero a la hora de pasarle los datos con LoadVars no se pk razon no recibe nada y trabaja las variables como "Undefined" y siempre me tira ke el login es incorrecto...

Por _pablito_

Claber

190 de clabLevel



Genero:Masculino  

Argentina

firefox
Citar            
MensajeEscrito el 23 Ago 2005 11:23 pm
aun tienes problemas? :? no se habia solucionado? :?

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 23 Ago 2005 11:36 pm
Nuse, mi PC hace magia! O yo soy estupido y cambie algo sin kerer (ke me parece mas razonable :P)... El tema es ke anduvo, apague la pc, la encendi al otro dia y no andaba otra vez... :'(

Igual, me harte y me puse a ver ke se puede hacer con AMFPHP y Flash Remoting...

Grax!!

Por _pablito_

Claber

190 de clabLevel



Genero:Masculino  

Argentina

firefox

 

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