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)
7
respuestas

[Duda] No me funciona INICIO DE SESION

¿Alguien me puede ayudar a descubrir por qué no deja de preguntar al ingresar correctamente el usuario y la contraseña?

7 respuestas

Hola, envía por aquí el código para analizarlo y encontrar el error.

Lo coloqué en mi mensaje, pero no sé por qué no se ve:

Sí, estaba.

copia todo el código y utiliza el "</>" que esta en la caja de comentarios y pega el código entre las 2 comillas, saludos

<meta charset="UTF-8">

<script>

    function saltarLinea() {
        document.write("<br>");
    }

    function imprimir(frase) {
        document.write(frase);
        saltarLinea();
    }

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

    var intentos = 1

    while (intentos <= 3){

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

        if( inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada ) {
            alert("Bienvenido al sistema " + inicioDeSesionIngresado);
            intentos == 3        

        } else {

            if (intentos == 3) {
                alert("Agotaste el número permitido de intentos!");

            } else {
                alert("Inicio de sesión inválido. Favor intente de nuevo");
            }
        }

        intentos ++

    }

</script>

Buenas noches, lo que pasa es que cuando comparas el usuario y la contraseña ingresados con los registrados entra al if e imprime el mensaje de bienvenido al sistema, hasta ahí todo correcto, el error viene cuando declaras intentos igual a 3 para que ya no vuelva a entrar al while.

Tu estas redefiniendo el valor de intentos de la siguiente manera:

intentos == 3

Y esto es incorrecto, recuerda que el doble igual solo se utiliza cuando vas a comparar que tu variable de la izquierda sea igual al valor de la derecha, simplemente tendrías que quitar un signo de igual para indicar que a tu variable le vas a asignar el valor consiguiente y ya va a funcionar correctamente, quedando la sentencia del if final así:

if( inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada ) {
            alert("Bienvenido al sistema " + inicioDeSesionIngresado);
            intentos = 3;        
        }
solución!

Muchas gracias, Alejandro. Es que en un ejercicio anterior tuve el error al revés. Tenía que poner dos =, y puse uno. Me quedó muy clara tu explicación. También la de John, para conseguir agregar el código. MUchas gracias.