Tengo una función (cabecera), que muestra el valor de los atributos de un objeto. Cuando arranca el sistema (despues de un registro), creo un objeto usuario con el valor de sus atributos y lo guardo en una session. La primera vez que llamo a cabecera, obtengo el objeto de la sesión e imprimo sus valores. La segunda vez que entra en cabecera, no hay problema para obtener el objeto de la sesión (al menos no da error), pero no puedo acceder a sus valores.
Código PHP:
function cabecera(){
if (isset( $_SESSION['usuario']) and $_SESSION['revista']){
$usuario=$_SESSION['usuario'];
$revista=$_SESSION['revista'];
}else{
echo " no hay sesion";
}
echo $usuario;
echo $usuario->nombre;
echo $revista;
echo $revista->titulo;
$rol=get_class($usuario);
echo "rol";
echo $rol;
}
Código:
La variable sigue almacenada en la sesión con los mismos valores que la primera vez.Object id #1Object id #2rol__PHP_Incomplete_Class
He leido en este foro y por internet, posibles soluciones que he intentado, pero el resultado es el mismo.
1.- Poner la definición de las clases antes de iniciar session (lo he puesto tanto antes, como después, como no ponerla).
2.- Poner en php.ini ->session.auto_start = 0; ya lo tenía así;
3.- Usar serialize y unserialize (he leido q con el session_start ya valdría)
4.- No he probado a volver a guardar el objeto en la session despues de leer porque no he modificado su estado y creo haber leido que aunque se modifique, al finalizar la ejecución se almacena de nuevo automaticamente (pero no estoy seguro).
¿alguien sabe por qué falla?
Muchas Gracias