Comunidad de diseño web y desarrollo en internet online

Login en Flash-PHP y MySQL

Citar            
MensajeEscrito el 11 May 2007 11:20 pm
Hola, ojalá me puedan ayudar, tengo una página en Flash, a la que necesito meterle un Login para una zona protegida, ese login debe jalar el usuario y contraseña de una base de datos en MySQL y, desde luego, el vínculo es PHP. Encontré un ejemplo aquí mismo:

http://www.cristalab.com/tutoriales/157/login-en-flash-con-usuario-y-contrasena

Pero la verdad es que nunca funcionó, a simple vista el código trae muchos errores, he tratado de sanar algunos pero me sigue sin jalar, ojalá alguien me pueda ayudar. Cuando el usuario es incorrecto lo marca, pero cuando es correcto dice que está mal escrito. Les dejo los códigos:

Flash:
-----------------

Código :

stop();
Stage.scaleMode = "noScale";
var envio:LoadVars = new LoadVars();
var recibir:LoadVars = new LoadVars();
function login() {
envio.usuario = usuario_txt.text;
envio.contrasena = contrasena_txt.text;
envio.action = "login";
envio.sendAndLoad("consulta.php", recibir, "POST");
}
recibir.onLoad = function(exito) {
if (exito) {
switch (this.opcion) { 
case "0" : 
mensaje_txt.text = "no existe el usuario";
break; 
case "1" : 
mensaje_txt.text = "nombre de usuario o pass mal ingresado";
break; 
case "2" : 
mensaje_txt.text = "datos correctos";
switch (this.tipo){
case "0" :
gotoAndStop(2);
break;
case "1" :
default :
mensaje2_txt.text = "no tienes tipo de usuario";
break; 
}
break;
default : 
mensaje_txt.text = "no hay conexión";
break; 
}
} else {
mensaje_txt.text = "Error en el Script";
}
};





consulta.php
----------------------------

Código :

<?php

$action = $HTTP_POST_VARS['action'];
$usuario = $HTTP_POST_VARS['usuario'];
$contrasena = $HTTP_POST_VARS['contrasena'];

require_once('connect.php');
mysql_select_db($database_conn, $conn);

if ($action == 'login'){
$sql = mysql_query("SELECT contrasena FROM registros WHERE usuario='".$usuario."'");
if (!$sql) {
die('Could not query:' . mysql_error());
}
$sql2 = mysql_fetch_row($sql);
if (!$sql2){
//no existe usuario
echo 'no existe usuario<br>';
echo utf8_encode('&opcion=0'); 

}else{
if ($password !== $sql2[0]){
//no coincide pass
echo 'el pass no coincide<br>';
echo utf8_encode('&opcion=1');
}else{
//usuario y pass correctos
echo 'datos correctos<br>';
echo utf8_encode('&opcion=2&tipo='.$sql2[1].''); 
}
}
mysql_close($conn);
}
?>

Por elcritico

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 12 May 2007 03:57 pm
Prueba el métod de debug "clásico": en los valores que el php devuelve al flash añade tanto el usuario y contraseña que mandas desde el flash, como los que lees de la base de datos, luego los sacas en algun textbox del flash y así ves qué está pasando.

No estoy seguro, pero puede que tenga algo que ver con que sendAndLoad haga una codificación utf8 de los datos, en cuyo caso a lo mejor tendrías que hacer un utf8_decode($loquesea) en el php antes de comparar valores.

Por kornshell

14 de clabLevel



 

firefox

 

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