diff --git a/controladores/ControladorUsuario.php b/controladores/ControladorUsuario.php index a7647e3..98f6ad1 100644 --- a/controladores/ControladorUsuario.php +++ b/controladores/ControladorUsuario.php @@ -55,10 +55,11 @@ switch ($_POST['orden']) { if ($resultado instanceof Usuario) { - // === AÑADIR ESTAS LÍNEAS PARA GUARDAR EN SESIÓN === + // === GUARDAR EN SESIÓN (incluido avatar)=== $_SESSION['idUsuario'] = $resultado->getIdUsuario(); $_SESSION['nombreUsuario'] = $resultado->getNombreUsuario(); $_SESSION['email'] = $resultado->getEmail(); + $_SESSION['avatar'] = $resultado->getAvatar(); // ================================================= echo json_encode([ @@ -83,6 +84,7 @@ switch ($_POST['orden']) { unset($_SESSION['idUsuario']); unset($_SESSION['email']); unset($_SESSION['nombreUsuario']); + unset($_SESSION['avatar']); // Destruimos la sesión session_destroy(); @@ -92,7 +94,6 @@ switch ($_POST['orden']) { ]); break; - case 'mostrarEstadisticas': $usuario = Usuario::buscarPorId($_SESSION['idUsuario']); @@ -237,16 +238,17 @@ switch ($_POST['orden']) { break; case 'comprobarSesion': - if (isset($_SESSION['idUsuario']) && !empty($_SESSION['idUsuario'])) { - echo json_encode([ - 'activa' => true, - 'usuario' => [ - 'idUsuario' => $_SESSION['idUsuario'], - 'nombreUsuario' => $_SESSION['nombreUsuario'] ?? '' - ] - ]); - } else { - echo json_encode(['activa' => false]); - } - break; + if (isset($_SESSION['idUsuario']) && !empty($_SESSION['idUsuario'])) { + echo json_encode([ + 'activa' => true, + 'usuario' => [ + 'idUsuario' => $_SESSION['idUsuario'], + 'nombreUsuario' => $_SESSION['nombreUsuario'] ?? '', + 'avatar' => $_SESSION['avatar'] ?? '' + ] + ]); + } else { + echo json_encode(['activa' => false]); + } + break; } diff --git a/js/cabecera.js b/js/cabecera.js index b61a631..90a35ea 100644 --- a/js/cabecera.js +++ b/js/cabecera.js @@ -26,7 +26,7 @@ $(document).ready(function () { }); /** - * Comprueba con el servidor si existe una sesión PHP activa. + * Comprueba con el servidor si existe una sesión PHP */ function comprobarEstadoSesion() { $.ajax({ @@ -37,7 +37,6 @@ function comprobarEstadoSesion() { success: function (respuesta) { if (respuesta.activa) { renderizarCabeceraConSesion(respuesta.usuario); - // Si existe el contenedor del botón Jugar en index, lo mostramos $('#colBotonJugar').removeClass('d-none'); } else { renderizarCabeceraSinSesion(); @@ -79,13 +78,8 @@ function ejecutarLogin() { $('#modalLogin').modal('hide'); $('#formLogin')[0].reset(); - renderizarCabeceraConSesion({ - idUsuario: respuesta.idUsuario, - nombreUsuario: respuesta.nombreUsuario, - avatar: respuesta.avatar - }); - - $('#colBotonJugar').removeClass('d-none'); + // Cargar datos de la sesión actualizados + comprobarEstadoSesion(); } }, error: function () { @@ -132,7 +126,7 @@ function ejecutarRegistro() { $('#modalRegistro').modal('hide'); $('#formRegistro')[0].reset(); - // Autologin + // Autologin tras registrarse $('#loginEmail').val(email); $('#loginPassword').val(pass); ejecutarLogin(); @@ -165,15 +159,21 @@ function cerrarSesion() { } /** - * Renderiza la cabecera cuando HAY sesión iniciada (Menú Perfil + Avatar) + * Renderiza la cabecera cuando HAY sesión iniciada */ function renderizarCabeceraConSesion(usuario) { - let avatarImg = usuario.avatar ? usuario.avatar : 'img/avatars/defaultProfile.jpeg'; + //Mete el avatar en cabecera + let avatarImg = (usuario.avatar && usuario.avatar !== '') + ? usuario.avatar + : 'img/avatars/defaultProfile.jpeg'; + + // Refrescar avatar si se cambia + let avatarConCacheBuster = avatarImg + '?v=' + new Date().getTime(); let html = `