let idUsuarioSesion = null; $(document).ready(function () { comprobarSesion(); }); // Función auxiliar para escapar texto HTML function escapeHTML(str) { return $("
") .text(str ?? "") .html(); } // Comprobar estado de sesión al cargar la página function comprobarSesion() { $.ajax({ method: "POST", url: "controladores/controladorUsuario.php", data: { orden: "comprobarSesion" }, }).done(function (respuesta) { try { if (typeof respuesta === "string") { respuesta = JSON.parse(respuesta); } const contenedor = $("#contenedorUsuarioCabecera"); contenedor.empty(); if (respuesta.activa && respuesta.usuario) { // Obtenemos la ruta del avatar o la de por defecto const avatarUrl = respuesta.usuario.avatar || "img/avatars/defaultProfile.jpeg"; // Usuario autenticado: Mostrar Menú Dropdown con el avatar const htmlUsuario = ` `; contenedor.html(htmlUsuario); // Si estamos en la página principal, mostramos el botón JUGAR if ($("#colBotonJugar").length) { $("#colBotonJugar").removeClass("d-none"); $("#colRanking") .removeClass("col-lg-8") .addClass("col-lg-7 col-xl-8"); } } else { // No hay sesión: Mostrar botones de Login y Registro const htmlInvitado = ` `; contenedor.html(htmlInvitado); // Si estamos en la página principal, ocultamos el botón JUGAR if ($("#colBotonJugar").length) { $("#colBotonJugar").addClass("d-none"); $("#colRanking") .removeClass("col-lg-7 col-xl-8") .addClass("col-lg-8"); } } } catch (e) { console.error("Error al procesar la respuesta de la sesión:", e); } }); } // Registro $("#botonAceptarRegistro").click(function (event) { event.preventDefault(); let nombreUsuario = $("#regNombre").val().trim(); let email = $("#regEmail").val().trim(); let contrasena = $("#regPassword").val(); let contrasenaConfirmacion = $("#regPasswordConfirm").val(); $("#regNombre").removeClass("is-invalid"); $("#regEmail").removeClass("is-invalid"); $("#regPassword").removeClass("is-invalid"); $("#regPasswordConfirm").removeClass("is-invalid"); $("#errorRegistro").text(""); if (contrasena !== contrasenaConfirmacion) { $("#regPassword").addClass("is-invalid"); $("#regPasswordConfirm").addClass("is-invalid"); $("#errorRegistro").text("Las contraseñas no coinciden."); return; } $.ajax({ method: "POST", url: "controladores/controladorUsuario.php", data: { nombreUsuario: nombreUsuario, email: email, contrasena: contrasena, orden: "registrarUsuario", }, }).done(function (respuesta) { if (typeof respuesta === "string") respuesta = JSON.parse(respuesta); if (respuesta.error) { $("#errorRegistro").text(respuesta.error); $("#regNombre").addClass("is-invalid"); $("#regEmail").addClass("is-invalid"); } else { $("#errorRegistro") .removeClass("text-danger") .addClass("text-success") .text(respuesta.exito); $("#formRegistro")[0].reset(); setTimeout(function () { location.reload(); }, 1000); } }); }); // Login $("#botonAceptarLogin").click(function (event) { event.preventDefault(); let email = $("#loginEmail").val().trim(); let contrasena = $("#loginPassword").val(); let recuerdame = $("#recordar").is(":checked"); $("#loginEmail").removeClass("is-invalid"); $("#loginPassword").removeClass("is-invalid"); $("#errorLogin").text(""); if (email === "" || contrasena === "") { $("#errorLogin").text("Todos los campos son obligatorios."); if (email === "") $("#loginEmail").addClass("is-invalid"); if (contrasena === "") $("#loginPassword").addClass("is-invalid"); return; } $.ajax({ method: "POST", url: "controladores/controladorUsuario.php", data: { email: email, contrasena: contrasena, recuerdame: recuerdame, orden: "comprobarUsuario", }, }).done(function (respuesta) { if (typeof respuesta === "string") respuesta = JSON.parse(respuesta); if (respuesta.error) { $("#loginEmail").addClass("is-invalid"); $("#loginPassword").addClass("is-invalid"); $("#errorLogin").text(respuesta.error); } else { location.reload(); } }); }); // Cerrar sesión $(document).on("click", "#botonCerrarSesion", function (event) { event.preventDefault(); $.ajax({ method: "POST", url: "controladores/controladorUsuario.php", data: { orden: "cerrarSesion" }, }).done(function (respuesta) { if (typeof respuesta === "string") respuesta = JSON.parse(respuesta); if (respuesta.error) { console.log(respuesta.error); } else { window.location.href = "index.php"; } }); });