Solucionado (ver solución)
Solucionado
(ver solución)
7
respuestas

Código que Inicia Sesión + mostrar número de intentos en el pop up??

Buenas,

Este es mi código para el programa que inicia sesión.

Me dicen como puedo restarle a la variable "actual" para que le avise al usuario cuántos intentos le quedan, o si hay alguna otra forma?

<meta charset="UTF-8">

<h1> Programa que Inicia Sesión de Vero </h1>

<script>

    var usuario = "vero";
    var pass = "veroiglesias";

    var max = 3;
    var actual = 1;

    while(actual <= max){
        var pedirUsuario = prompt("Ingrese su usuario");
        var pedirPass = prompt("Ingrese su contraseña");

        if(usuario == pedirUsuario && pass == pedirPass){
            alert("Bienvenido al programa");
            document.write("Pusiste bien los datos de inicio sesión :)");
            break;  
        } else {
            if (actual == max) {
                alert("Agotaste el número de intentos!");
                document.write("¿Olvidaste tu contraseña? :( <br> Presioná F5 para intentar de nuevo.");

            } else {
                alert("Datos incorrectos, ya utilizó " + actual + " intentos (Intentos permitidos: 3)");
            }
        }
        actual++  
    }

</script>

Editor EN LINEA alternativo a codepen.io (Preferentemente me gusta mas ♥) ------> https://www.w3schools.com/html/tryit.asp?filename=tryhtml_default_default

7 respuestas
solución!

Buenas tardes Veronica,

te dejo mi código para que te guíes.

Espero que te sirva.

Saludos!

<script>
// inicio de sesión

    const usuario = 'alura';
    const contrasenia = 'alura123';

    let  nombreUsuario = prompt("ingrese su nombre de usuario: ").toLowerCase();
    let contraseniaUsuario = prompt("ingrese su contraseña: ").toLowerCase();


    let iterador = 1;

    /* esta es la variable que muestra cuantos intentos me queda */
    let intentos = 3;

    while (iterador < 3)
    {
        if (nombreUsuario == usuario && contraseniaUsuario == contrasenia) 
        {
            alert(`Bienvenido al sistema ${nombreUsuario}`);
            break;

        } else
        {
            if (nombreUsuario != usuario || contraseniaUsuario != contrasenia) 
            {
                iterador +=1;
                intentos = intentos - 1;
                alert(`Te quedan ${intentos} intentos`);
                nombreUsuario = prompt("ingrese nuevamente su nombre de usuario: ").toLowerCase();
                contraseniaUsuario = prompt("ingrese nuevamente su contraseña: ").toLowerCase();
            }
        }


    }

    if (iterador == 3) {
        alert("no puedo acceder al sistema!");
    }


</script>

Gracias Ale Sos un genio ♥

Me gustaría saber para que utilizaste el " toLowerCase() ".

De nada Vero!

el toLowerCase() es un método que devuelve el valor del string (cadena) en minúscula, con esto te aseguras que si el usuario introduce el texto en mayúscula y la validación se correcta en caso que el valor de la variable que utilizas para validar este en minúscula.

En caso que el valor de la variable de control este en mayúscula, existe otro método que devuelve una cadena en mayúscula, el toUpperCase().

Espero que te sirva mi explicación.

saludos desde Bs. As. - Argentina.

Que buen dato!!!

Por lo que veo en tu xp, estás más avanzado. Ya quiero llegar a esa parte jaja. Se aprecia muchísimo la ayuda Ale.

Saludos también de Bs. As. !

Me alegra poder ayudar!

Soy de Tigre. Vos de que parte de Bs. As. sos???

Si necesitas una mano, conta conmigo!

saludos!

Hola Alejandro. Si me permitis la observacion, justo vi tu cod y me intereso pero. No entra si pones el pass correcto en el tercer intento

Intente arreglarlo en tu logica pero no me salio.

yo soy mas cuadrado, lo hice asi:

while (iterador <= 3){
        let  nombreUsuario = prompt("ingrese su nombre de usuario: ").toLowerCase();
        let contraseniaUsuario = prompt("ingrese su contraseña: ").toLowerCase();

        if (nombreUsuario == usuario && contraseniaUsuario == contrasenia){
            alert(`Bienvenido al sistema ${nombreUsuario}`);
            break;
        } else {
            if (nombreUsuario != usuario || contraseniaUsuario != contrasenia)
            {
                iterador +=1;
                intentos = intentos - 1;
                alert(`Te quedan ${intentos} intentos`);


            }
         }
       }

Saludos!

Hola Gaston, como estas?

si, tenes razón, verifique el código y era porque pedía que ingreses nuevamente el nombre de usuario y contraseña, pero no volvía a entrar en el loop, pero cambiando el operador matemático < (menor que) por <= (menor o igual) y quedo, pero ya que esta modifique el orden de los prompts dentro del while y en la salida el valor que verifica el condicional de igual a mayor que 3.

muchas gracias y saludos!

<script>
    // inicio de sesión

    const usuario = 'alura';
    const contrasenia = 'alura123';

    let  nombreUsuario = prompt("ingrese su nombre de usuario: ").toLowerCase();
    let contraseniaUsuario = prompt("ingrese su contraseña: ").toLowerCase();


    let iterador = 1;
    let intentos = 3;

    while (iterador <= 3)
    {
        if (nombreUsuario == usuario && contraseniaUsuario == contrasenia) 
        {
            alert(`Bienvenido al sistema ${nombreUsuario}`);
            break;

        } else
        {
            if (nombreUsuario != usuario || contraseniaUsuario != contrasenia) 
            {
                iterador +=1;
                intentos = intentos - 1;
                alert(`Te quedan ${intentos} intentos`);
            }
        }
        nombreUsuario = prompt("ingrese nuevamente su nombre de usuario: ").toLowerCase();
        contraseniaUsuario = prompt("ingrese nuevamente su contraseña: ").toLowerCase();


    }

    if (iterador > 3) {
        alert("no puedo acceder al sistema!");
    }


</script>