Estoy implementando la opción de login con cookies para mi página. El sistema funciona, pero hay un pequeño error que no logro identificar.
Al principio de cualquier página tengo esto:
Código PHP:
Ver original
$user_loggued = false; } else { $user_loggued = true; } } else { $user_loggued = checkCookiesUsuario(); }
checkCookiesUsuario es una función que hice yo para comprobar si están las cookies de registro en el navegador del usuario. Es esta
Código PHP:
Ver original
function checkCookiesUsuario () { if (checkCookie ($_COOKIE["iduser"], $_COOKIE["random"])) { // Si usuario está memorizado en cookies, lo inicializamos $usuario = new Usuario (); if (!$usuario->inicializar($_COOKIE["iduser"])) { return false; } // El objeto usuario como variable de sesión return true; } else { return false; } } else { return false; } }
El segundo if de esa función es otra función propia que comprueba en la BD si la cookie $_COOKIE["iduser"] se corresponde con $_COOKIE["random"], que es una número random almacenado cuando el usuario se logueó.
Todo este sistema no sé si es el mejor posible, pero funciona bien.
El problema viene cuando lo pongo en práctica. El primer fragmento de código que he puesto funciona y checkCookiesUsuario() retorna true, pero en la página toda la información relacionada con el usuario no aparece (nombre, apellidos, fotos...). Como no aparecía añadí esto para ver si se creaba bien la variable de sesión:
Código PHP:
Ver original
Y para mi sorpresa, $user_loggued es true, la variable de sesión se crea perfectamente bien y ya aparecen todos los datos del usuario en la página. Sin embargo, si elimino esas líneas de código vuelvo al punto de partida, donde ningún datos del usuario se muestra.
¿Alguien sabe qué podría estar pasando?
Gracias!