Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

[Duda] Fallo con el inicio de sesión

En el código siguiente tengo un problema, al colocar usuario/contraseña erroneos queda en un ciclo en que sale "Inicio de sesión invalido..." consecutivamente y finalizando con uel mensaje "Demasiados intentos...." sin tener la posibilidad de ingresar por segunda o tercera vez usuario/contraseña. ¿Qué estoy haciendo mal? Gracias por anticipaado

<meta charset="UTF-8">

<script>;
    //function InicioSesion(){}

    var inicioDeSesionRegistrado = "alura";
    var contrasenhaRegistrada = "alura321";

    var inicioDeSesionIngresado = prompt("Ingrese su usuario");
    var contrasenhaIngresada = prompt("Ingrese su contraseña");
    var intentosTotal = 3;
    var intentos = 1;
    while(intentos <= intentosTotal){
        if(inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada) {
            alert("Bienvenido al sistema " + inicioDeSesionIngresado);
            intentos = intentosTotal;
        } 
        else {
            if (intentos == 3) {
                alert("Demasiados intentos, sistema cerrado");
               }
            else{
                alert("inicio de sesión inválido. Favor intente de nuevo");
            }
        }
        intentos++;
    }
</script>
3 respuestas
solución!

Buenas noches, el problema es que estas colocando el:

    var inicioDeSesionIngresado = prompt("Ingrese su usuario");
    var contrasenhaIngresada = prompt("Ingrese su contraseña");

Fuera del while, por lo cual a la hora de que entra en el ciclo esta parte del codigo ya no se ejecuta por lo que se provoca ese fallo que no te permite seguir con el intento

<meta charset="UTF-8">

<script>;
    //function InicioSesion(){}

    var inicioDeSesionRegistrado = "alura";
    var contrasenhaRegistrada = "alura321";

    var intentosTotal = 3;
    var intentos = 1;
    while(intentos <= intentosTotal){
        var inicioDeSesionIngresado = prompt("Ingrese su usuario");
        var contrasenhaIngresada = prompt("Ingrese su contraseña");

        if(inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada) {
            alert("Bienvenido al sistema " + inicioDeSesionIngresado);
            intentos = intentosTotal;
        } 
        else {
            if (intentos == 3) {
                alert("Demasiados intentos, sistema cerrado");
            }
            else{
                alert("inicio de sesión inválido. Favor intente de nuevo");
            }
        }
        intentos++;
    }
</script>

hola, el problema esta en que las variables "inicioDeSesionIngresado" y "contrasenhaIngresada" se encuentran fuera del ciclo while, entonces solo las solicita una vez al iniciar el codigo, para solucionarlo, las debes dejar dentro del ciclo, así cada que se repita , volverá a pedirlas al usuario.

Gracias a todos, lo tendré MUY en cuenta para una próxima oportunidad