Comunidad de diseño web y desarrollo en internet online

Login: user desde txt

Citar            
MensajeEscrito el 20 Ene 2009 02:56 pm
Antes de nada muchas gracias por la ayuda que me podáis prestar!

Estoy creando una web en flash y quería crear una área de usuario y contraseña pero no se cómo hacerlo para hacer que los usuarios y contraseñas se lean desde un txt (para no tener que editar el flash cada vez que se añada un nuevo usuario). Alguien sabe cómo hacer esto¿? estoy muy perdido!

Gracias!

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Ene 2009 03:23 pm
Bueno, antes que nada, lo ideal es usar un sistema de base de datos, para el login. Sin embargo no se cuales sean tus necesidades, asi que esto puede servirte

http://www.cristalab.com/tutoriales/tutorial-de-loadvars-en-flash-c6l/
http://www.cristalab.com/tips/sustituir-loadvars-por-flash.net-en-actionscript-3-c34178l/

Revisa el primer tutorial, si usas as1 o as2, o el segundo si usas as3
Esto es para que veas como cargar datos desde un txt
Una vez que cargues esos datos al flash, trata tu login como lo vienes haciendo, pero con las variable que viene desde el txt.


Y nada mas como recomendacion, no es lo ideal que alamacenes en un txt,los nombres de usuario y contraseña, o al menos que este txt, este en un lugar con acceso via web. Esto apra evitar que alguien acceda al txt, obtenga los passwords y lueg entre a tu aplicacion.

Pero, con un poco de cuidado, no debe de haber problema.

Saludos.

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 20 Ene 2009 04:20 pm
Muchas gracias ramiro_olvera!

Ya se que lo mejor es hacer un base de datos, :( he mirado el tutorial de aqui para hacerla por mysql, pero me he quedado muy perdido! no se cómo hacerla en sql y el tutorial no me ayudó demasiado; no entiendo si necesito un programa para hacerlo (y quál seria) o si es un archivo en el servidor.. ni idea :S por eso decía lo del archivo txt... se que no es seguro pero no se hacerlo con base de datos :( :

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2009 05:57 pm
ok, para hacer un sencillo login desde un txt, bastaria cin hacer esto
pon dos cajas de ingreso de texto, con instancias user_txt y pass_txt
un clip de pelicula con instancia clip

Código :

var login:LoadVars = new LoadVars();
var user:String;
var pass:String;


login.onLoad = function(exito:Boolean):Void
{
   if(exito){
      user = login.user_str;
      pass = login.pass_str;
      //trace("User: " + user + " Pass: " + pass);
      if(user_txt.text == user && pass_txt.text == pass){
         // aqui manda las acciones correspondientes
         trace("Perfecto, ya estas Autenticado")
      }else{
         // Login incorrecto, No hay paso !!!
         trace("Error: Largo de aqui impostor")
      }
   }else{
      trace("Error, datos no cargados")
   }
}

function getLogin():Void 
{
   login.load("data.txt");
}

clip.onPress = function():Void {
      getLogin();
}


crea un archivo de texto, con nombre data.txt y ponle lo siguiente

Código :

user_str=ramiro&pass_str=olvera&


Esta seria la manera más sencilla para hacerlo. Sin embargo, como te daras cuenta, es medianamente facil saltarse esta protecccion.

Para hacer un login con una base de datos como el de aqui
http://www.cristalab.com/tutoriales/login-en-flash-con-usuario-y-contrasena-c157l/
necesitas que tu hostig de internet, tenga un servicio de base de datos, que puede ser mysql
Mysql es un programa que corre del lado del servidor, y que te provee acceso a un sistema de almacenamiento de datos., puedes revisar que tu host lo tenga, preguntandole a tu proovedor (En la actualidad cualquier hosting decente lo tiene, y en planes muy baratos)

Tambien puedes intalarlo en tu pc, y probar desde ahi.
No se cuales sean las necesidades que tengas para tener un login, pero espero que esto te sirva como base para tener un sistema mas confiable, de acuerdo a lo que necesites.

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 21 Ene 2009 06:18 pm
Muchas gracias Ramiro! Te has explicado a la perfección! :D

Creo que cómo no soy demasiado bueno en esto me decantaré a hacerla en txt...me estoy mirando el código a poner en el txt.. y si fueran varios usuarios? cómo se podria hacer¿?

gracias de nuevo!

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2009 07:18 pm
ok te voy a cambiar ligeramente la jugada


Código :

var login:LoadVars = new LoadVars();
var num:Number = 0; // Numero de usuarios
var flag:Boolean = false; 

login.onLoad = function(exito:Boolean):Void
{
   
   if(exito){
      num = login.num;
      if(num > 0){
         for(var i=0; i<num; i++){
            if(user_txt.text == login["user" + i + "_str"] && pass_txt.text == login["pass" + i + "_str"]){
               flag = true;
               break; // si ya lo encontro, nos salimos del ciclo, pues no tiene caso seguir buscando
            }
         } // End for
         if(flag == true){
            // aqui manda las acciones correspondientes pudo entrar.
            trace("Perfecto, ya estas Autenticado")
         }else{
            // Login incorrecto, No hay paso !!!
            trace("Error: Largo de aqui impostor")
         }
      }
   }else{
      trace("Error, datos no cargados")
   }
}

function getLogin():Void 
{
   login.load("data.txt");
}

clip.onPress = function():Void {
      getLogin();
}


y el texto

Código :

user0_str=ramiro&pass0_str=olvera&user1_str=isedhel&pass1_str=isedhelpass&user2_str=juanito&pass2_str=vega&num=3&


Si te fijas el txt ahora tiene pares de valores , user1,. y pass1, user2, y pass2.
El login se hara solamente si en los datos que ingresen los usuarios coinciden, con estos pares de user/pass

Lo que hacemos es tener un flag en falso por default, y que se activara solamente, si hay alguna conincidencia en estos pares. Para ellos recorremos todos los pares, buscando dicha coincidencia.
Si la hay, entonces ponemos el flag en verdadero.
Al final revisamos si el flag, es verdadero; entonces le permitimos entrar; y si no, pues lo mandas a freir esparragos.

Espero te sirva de algo.

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 21 Ene 2009 08:41 pm
mmm correcto! muchas gracias de nuevo ramiro! de todas formas no me acaba de servir, porque lo que yo necesito es que al entrar cada usuario tenga su "tree" personal, y por lo que he entendido en tu código, cada usuario iria a un tree común. De todas maneras, muchisimas gracias! a ver cómo me las apaño!

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2009 09:03 pm

isedhel escribió:

mmm correcto! muchas gracias de nuevo ramiro! de todas formas no me acaba de servir, porque lo que yo necesito es que al entrar cada usuario tenga su "tree" personal, y por lo que he entendido en tu código, cada usuario iria a un tree común. De todas maneras, muchisimas gracias! a ver cómo me las apaño!


ok como, a que te refieres con su tree personal????
Para todo hay maña, asi que dinos necesitas en especifico, y ahorita vemos como le hacemos :bate: :bate: :bate: :bate: :bate: :bate:

Saludos, ;) ;) ;) Espero tu respuesta

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

opera
Citar            
MensajeEscrito el 21 Ene 2009 09:08 pm
jajaja muchas gracias por tu paciencia ramiro!

pues mira.. lo que quería hacer era un parte de la web que se necesitara un usuario y una contraseña; entonces que para cada usuario cargar un frame del flash dónde le pondría un tree (un componente de flash) que llamaria unas direcciones web por php. con el código que tu propones, entiendo que al acceder a la web, aunque haya muchos usuarios y contraseñas diferentes, todos acaban en el mismo frame, y eso no me seriviria. espero haberme explicado bien :S

gracias de nuevo!

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2009 10:14 pm
ok, mira
en esta parte de aqui es donde controlas quien entró

Código :

 
         if(flag == true){
            // aqui manda las acciones correspondientes
            trace(i + ".- Perfecto: " + login["user" + i + "_str"] + ", ya estas Autenticado")
            // como veras, la variable i, nos dice el numero de usuario que entro
            // dependiendo del numero de usuario que entro, lo mandamos a un frame en especifico
            // o label, o clip, o a donde se te antoje
            switch(i+1){
               case 1:
                  //tuclip.gotoAndStop(numero de frame);
                  trace("Entro: " + login["user" + i + "_str"]);
               break;
               case 2:
                  _root.gotoAndStop(5);
                  trace("Entro: " + login["user" + i + "_str"]);
               break;
               case 3:
                  _root.gotoAndStop("usuario3");
                  trace("Entro: " + login["user" + i + "_str"]);
               break;
               default:
            }
         }else{
            // Login incorrecto, No hay paso !!!
            trace("Error: Largo de aqui impostor")
         }


esa es una forma de hacerlo, muy basica; se puede hacer mas sencilla, pero la he puesto asi, para que controles, dependiendo de quien entro, a donde haya que dirigirse.

Si tienes dudas, especifica la manera en que estan organizados los frames a donde tiene que dirigirise un usuario y lo adaptamos

Por ejemplo, tienes un clip en root, que se llame contenido, y adentro de el 4 frames que corresponden al contenido de cada usuario.
en este caso bastaria nada mas con hacer un
_root.contenido.gotoAndStop(i + 1);

para que cada usuario se vaya a su frame conrespondiente

saludos, me dices si te sirve

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

opera
Citar            
MensajeEscrito el 21 Ene 2009 10:27 pm
mmm a ver.. dentro de una misma linea de tiempo, el logueo está en el frame 40 y quiero que los usuarios vayan a los frames 41, 51, 43, etc etc (por ejemplo)

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2009 10:34 pm
seria algo como

Código :

         if(flag == true){
            // aqui manda las acciones correspondientes
            trace(i + ".- Perfecto: " + login["user" + i + "_str"] + ", ya estas Autenticado")
            // como veras, la variable i, nos dice el numero de usuario que entro
            // dependiendo del numero de usuario que entro, lo mandamos a un frame en especifico
            // o label, o clip, o a donde se te antoje
            switch(i){
               case 0:
                   _root.gotoAndStop(41); // El primer usuario se va al frame 41
                  trace("Entro: " + login["user" + i + "_str"]);
               break;
               case 1:
                   _root.gotoAndStop(51); // El segundo se iria al 51
                  trace("Entro: " + login["user" + i + "_str"]);
               break;
               case 2:
                   _root.gotoAndStop(43); // El tercero se iria al 43
                  trace("Entro: " + login["user" + i + "_str"]);
               break;
               default:
            }
         }else{
            // Login incorrecto, No hay paso !!!
            trace("Error: Largo de aqui impostor")
         }

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

opera
Citar            
MensajeEscrito el 21 Ene 2009 11:06 pm
mmm Ramiro eres un crack! :D muchas gracias! te lo estás currando mucho, ahora me miraré el código bien, y te digo si me funciona!

muchas muchas gracias de nuevo :)

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 22 Ene 2009 01:57 am
Buenas Ramiro! :D

Ahora me he mirado con más detalle el script, y me he perdido! no porqué no lo hayas explicado bien sino porque es muy tarde (casi las 3 de la madrugada) y porque no se demasiado tampoco de actionscript!. A ver, he visto que utilizas dos "variables" que son "user" para el usuario, y me imagino que "_str" para el password.. pero no se ver cómo lo checkearis en un archivo txt. Es decir, como comprobarias que el usuario y la contraseña introducida está dentro de el txt; no se cómo habría que escribir este archivo txt. Podría ser algo así creo, no?:

&i=nombredeusuario,contraseña

y para varios:

&i=nombredeusuario,contraseña
&i=nombredeusuario2,contraseña2

¿? si es así cómo le indico cuando es un usuario u otro en el action script del flash¿?

bufff. siento si sueno confuso o ya me lo explicastes y no te entendí... nunca me había costado algo tanto! jaja

Si llegas a tener ganas de explicarmelo, de nuevo te lo agradezco! pero no estas obligado, que en parte se que soy un poco caso perdido jajaja :P

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 22 Ene 2009 06:45 pm
ok mira
El archivo de texto usa el formato URL, para escribir los valores de variable=contraseña concatenandolos con un &.
El formato que utilice en el ejemploes el siguiente

user0_str=ramiro&
pass0_str=olvera&

user1_str=isedhel&
pass1_str=isedhelpass&

user2_str=juanito&
pass2_str=vega&

num=3&

Fijate como manejo un contador de variable, como control de la misma.
user1_str
Al final tambien manejo una variable de control para saber cuantos usuarios hay.

El sufijo "_srt" es un adorno solamente.

Una ves comprendido esto, podemos crear un nuevo archivo como se te venga en gana
u1=ramiro&
p1=olvera&
u2=juanito&
p2=vega&
num=2&

Y claro tu ya en el flash, lo mandarias llamar como

Codigo escribió:

login.onLoad = function(exito:Boolean):Void
{

if(exito){
num = login.num;
if(num > 0){
for(var i=0; i<num; i++){
if(user_txt.text == login["u" + i] && pass_txt.text == login["p" + i]){ // linea importante
flag = true;
break; // si ya lo encontro, nos salimos del ciclo, pues no tiene caso seguir buscando
}
} // End for
if(flag == true){
// aqui manda las acciones correspondientes pudo entrar.
trace("Perfecto, ya estas Autenticado")
}else{
// Login incorrecto, No hay paso !!!
trace("Error: Largo de aqui impostor")
}
}
}else{
trace("Error, datos no cargados")
}
}


En una oportunidad leete esto de aqui
Tutorial de LoadVars en Flash

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 22 Ene 2009 08:41 pm
Buenas Ramiro!

Genial la explicación! :) ahora le daré vueltas a ver qué tal... también le he estado dando vueltas, se que las bases de datos quedan un poco fuera de mis capacidades (a menos que esten hechas en access pero no he encontrado ninguna explicación de cómo cargar una base de datos de access), ahora tengo otra duda... a ver si también me puedes ayudar :) si voy a poner las contraseñas en un txt, este quedará en archivos temporales con, todas las contraseñas; de eso ya era consciente, pero mi duda es, hay alguna manera de ponerle una contraseña al txt o de encriptarlo¿? o de al menos que no quede en archivos temporales? de nuevo si me puedes ayudar (o alguien puede) se lo agradeceré :) mientras tanto seguiré buscando a ver qué encuentro!

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 24 Ene 2009 03:48 am
Hola, tienes acceso a algun lenguaje de servidor?? php, asp? etc?

De no ser asi, dificilmente podrias esconder las contraseñas, pues como bien dices, estas quedan cacheadas en la memoria

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 24 Ene 2009 09:23 am
tengo acceso a php... se podría hacer mediante php? no lo sabía!

Por isedhel

26 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Ene 2009 05:36 pm
Hola, perdón por la tardanza, no se en que status vayas, pero si, con php, lo puedes hacer perfectamente, y con una plataforma mucho más segura;

Saludos.

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox

 

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