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 = `
@@ -195,13 +195,11 @@ function renderizarCabeceraConSesion(usuario) {
}
/**
- * Renderiza los botones originales:
- * - "Iniciar Sesión" (Rojo -> btn-danger)
- * - "Registrarse" (Verde -> btn-success)
+ * Renderiza los botones en la cabecera cuando NO hay sesión (Iniciar sesión azul)
*/
function renderizarCabeceraSinSesion() {
let html = `
-