Comunidad de diseño web y desarrollo en internet online

problemas con "Login en Flash con usuario y contraseña"

Citar            
MensajeEscrito el 06 May 2008 03:43 am
Hola amigos:
Les cuento que estoy en mis primeros pasos en flash y action script, y necesito ayuda, confio en que alguien pueda orientarme en lo que me pasa.
utilice el codigo que sale en \"Login en Flash con usuario y contraseña\" y lo modifique un poco para
que se adaptara a mi base de datos, el problema es que ingrese lo que ingrese en las cajas de texto me dice \"datos correctos\", y no siempre los datos estan correctos....
las modificaciones que hice son las siguientes:

flash:
stop();
var envio:LoadVars = new LoadVars();
var recibir:LoadVars = new LoadVars();
function login() {
envio.username = usu_txt.text;
envio.password = pass_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 password mal ingresado\";
break;
case \"2\" :
mensaje_txt.text = \"datos correctos\";
//acá pueden agregar acciones para los registrados
break;
default :
mensaje_txt.text = \"no hay conexión\";
break;
}

} else {
mensaje_txt.text = \"Error en el Script\";
}
};
y en el boton :
on (release){
login();
mensaje_txt.text = \"conectando...\";
}

en php connect:
<?php
$hostname_conn = \"localhost\";//servidor donde corre mysql
$database_conn = \"eilers\";//base de datos
$username_conn = \"eilers\";//usuario de mysql
$password_conn = \"\";//pass de mysql
//la conexion
$conn = mysql_connect($hostname_conn, $username_conn, $password_conn) or die(mysql_error());
?>

y en consulta:
<?php

$action = $_POST[\"action\"];
$username = $_POST[\"username\"];
$password = $_POST[\"password\"];
require_once(\"connect.php\"); //llamada a la conexion
mysql_select_db($database_conn, $conn); //selecciona la db
if ($action == \"login\"){
$sql = mysql_db_query(\"SELECT pass FROM eilers WHERE user=\".$username);
if (!$sql) {
die(\'Could not query:\' . mysql_error());
}
$sql2 = mysql_fetch_row($sql);
if (!$sql2){
//no existe usuario
echo \'no existe usuario<br>\';
?>&opcion=0&<?
} else{
if ($password != $sql2[0]){
//no coincide pass
echo \'el pass no coincide<br>\';
?>&opcion=1&<?
} else{
//usuario y pass correctos
echo \'datos correctos<br>\';
?>&opcion=2&&vari=<? echo $sql2[0]; ?>&<?


}
}
mysql_close($conn);
}
?>

por favor que alguien me ayude.. gracias.

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2008 09:44 am
Le estás pasando user y pass, aquí el select:

SELECT pass FROM eilers WHERE user=".$username

Luego la opción del final es por defecto (if-else), y supongo que se ejecuta pase lo que pase. Cambialo a esto:

Código :

} else if($password == $sql2[0]){
  //usuario y pass correctos
  echo "opcion=2&vari=$sql2[0]";
} else {
  echo "opcion=3"
}


La opción 3 sería error

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 May 2008 07:40 pm
primero que todo gracias por responder...

inclui el pesazo de codigo que escribiste, pero lamentablemente tengo el mismo error, ejecuto el flash, escribo en las cajas de texto cualquier cosa y siempre me dice que los datos estan correctos, ademas que cuando intento pasar la variable vari que contiene sql2[0];no me muestra el valor del arreglo sino que me muestra exactamente "sql2[0]", como un string...
gracias de antemano

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2008 08:20 pm
Cambialo a

"opcion=2&vari=".$sql2[0];

Pon el código PHP como ha quedado, y please, ponle los tags de script para que se formatea, que es un parte leerlo así

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 May 2008 10:00 pm
hola.. como estas? yo sigo mal....
hice algunas modificaciones al archivo consulta.php pensando que la cosa cambiaria, pero nada, ahora me doy cuenta que me di vuelta en lo mismo, y aun me entra al mismo if, ya que siempre me dice "datos correctos" y se que es el mismo if porque si a ese if le cambio el valor de la variable "opcion" me cambia el mensaje...
estas son las modificaciones:
<?php

$action = $_POST["action"];
$username = $_POST["username"];
$password = $_POST["password"];
require_once("connect.php"); //llamada a la conexion
mysql_select_db($database_conn, $conn); //selecciona la db
if ($action == "login"){
$sql = "SELECT pass FROM usuario WHERE user='".$username."'";
$ejec_sql=mysql_db_query($database_conn,$sql);
$cant = mysql_num_rows($ejec_sql); /*contiene el numero de coincidencias encontradas en el select*/
if ($cant == 0){
//no existe usuario
echo 'no existe usuario<br>';
?>&opcion=0&<?
} else {
$resultado=mysql_fetch_array($ejec_sql); /*obtiene el arreglo con el resultado que arrojo la sentencia de busqueda select*/
$arreglo_result=$resultado["pass"]; /*el arreglo resultante se le asigna a esta variable*/
if ($password != $arreglo_result){
//no coincide pass
echo 'el pass no coincide<br>';
?>&opcion=1&<?
} else{
if ($password == $arreglo_result){
//usuario y pass correctos
"&opcion=2&vari=".$arreglo_result;
}

}
}
mysql_close($conn);
}
?>

al final, incorpore la sentencia que me digiste, pero aun me lo muestra como un string, ya que en vez de darme el valor de $arreglo_result, me da la palabra ".$arreglo_result , con comilla y punto al inicio...
gracias por la ayuda.... porfis hechale otra miradita, a lo mejor hay algo que no nos hemos percatado.....

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2008 10:19 pm
he pensado que talvez no me esta leyendo la base de datos.. pero me tiraria un error cierto?

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2008 11:05 pm
Ponle los tags script, eso hace que el código sea legible, mira la diferencia:

Código :

  if(a==1){
    id(b==2){
       if(c==3){
           callSomeFunction()
       }
    }
  }


if(a==1){
id(b==2){
if(c==3){
callSomeFunction()
}
}
}

No se si se entiende, dale a responder, no a respuesta rápida ... a menos que tengas todo el código sin formatear, lo cual me daría otra pista

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 May 2008 11:21 pm
tienes razon.. aqui va....

<?php

$action = $_POST["action"];
$username = $_POST["username"];
$password = $_POST["password"];
include("connect.php"); //llamada a la conexion
mysql_select_db($database_conn, $conn); //selecciona la db
if ($action == "login"){
$sql = "SELECT pass FROM usuario WHERE user='hgtgfhf'";
$ejec_sql=mysql_db_query($database_conn,$sql);
$cant = mysql_num_rows($ejec_sql); /*contiene el numero de coincidencias encontradas en el select*/
if ($cant == 0){
//no existe usuario
echo 'no existe usuario<br>';
?>&opcion=0&<?
} else {
$resultado=mysql_fetch_array($ejec_sql); /*obtiene el arreglo con el resultado que arrojo la sentencia de
busqueda select*/
$arreglo_result=$resultado["pass"]; /*el arreglo resultante se le asigna a esta variable*/
if ($password != $arreglo_result){
//no coincide pass
echo 'el pass no coincide<br>';
?>&opcion=1&<?
} else{
if ($password == $arreglo_result){
//usuario y pass correctos
"&opcion=2&vari=".$arreglo_result;
}
}
}
mysql_close($conn);
}
?>

espero que ahora si se lea mejor, estuve leyendo otro post, y pareciera que son varias las personas que bajaron este codigo y el error era que siempre decia que los datos eran correctos, aunque no lo fueran, pero lamentablemente no decia si lo solucionaron buuuu..
muchas gracias por tu tiempo.... confio en que me podras orientar en como solucionarlo.... gracias

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2008 11:28 pm
pmallea, los tag a los que se refiere solisarg con los [*code] y [*/code] (sin los asteriscos) para dar formato a tu código. O sea:
[*code]
Tu código
[*/code]
(Recuerda, los asteriscos no van)

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 06 May 2008 11:35 pm
nose por que yo le pongo los espacios para que quede bien ordenado y me lo escribe todo sin ningun margen....!!!!
lo intentare denuevo..

$action = $_POST[\"action\"];
$username = $_POST[\"username\"];
$password = $_POST[\"password\"];
include(\"connect.php\"); //llamada a la conexion
mysql_select_db($database_conn, $conn); //selecciona la db
if ($action == \"login\"){
$sql = \"SELECT pass FROM usuario WHERE user=\'hgtgfhf\'\";
$ejec_sql=mysql_db_query($database_conn,$sql);
$cant = mysql_num_rows($ejec_sql); /*contiene el numero de coincidencias encontradas en
el select*/
if ($cant == 0){
//no existe usuario
echo \'no existe usuario<br>\';
?>&opcion=0&<?
} else {
$resultado=mysql_fetch_array($ejec_sql);
$arreglo_result=$resultado[\"pass\"]; /*el arreglo resultante se le asigna a esta variable*/
if ($password != $arreglo_result){
//no coincide pass
echo \'el pass no coincide<br>\';
?>&opcion=1&<?
} else{
if ($password == $arreglo_result){
//usuario y pass correctos
\"&opcion=2&vari=\".$arreglo_result;
}
}
}
mysql_close($conn);
que lastima, por mas que trato, en la vista preliminar me sale todo orientado para el lado izquierdo sin margen ni nada, no se como hacer para que se postee tal cual como lo escribo....(y eso que lo hago con "respuesta" no con "respuesta rapida"

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2008 11:46 pm
Vale, como soy medio ciego te invito a reescribirlo el select de esta forma

SELECT pass FROM usuario WHERE user='$user' AND password='$password'

Luego encuentras algo o no (en la medida que user/pass sean únicos), sin tanto if

Código :

$cant = mysql_num_rows($ejec_sql); 
if($cant==0){
  echo "status=error"
} else {
  echo "status=ok"
}


Espero que tu habilidad para la programación supere tus capacidades para usar los tags, yo me voy ahora a comprarme gafas nuevas :(

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 May 2008 01:30 am
lamentablemente me sigue no funcionando, sigue diciendo "datos correctos", me imagino que debe ser algo tan tonto....pero pucha, por mas que miro no puedo darme cuenta de que es lo que pasa, incluso lo que hice es de forma manual, en el codigo, le asigne valor cero a $cant a ver si asi al menos entraba en el if, pero no, dale con decir que los datos estan correctos...

gracias de todas maneras...
gracias por tu tiempo..
:-(

Por pmallea

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 May 2008 03:31 am
estoyyy felizzzzzz
nose porque ocurre, pero en localhost ( xampp) no me resulta, pero lo subi a un servidor, y el codigo funciona perfectamente!!!!!!!!.. alguien sabe porque ocurrira eso?
gracias jorge por la paciencia

Por pmallea

13 de clabLevel



 

firefox

 

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