Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Guardar instancia de clase en session

Estas en el tema de Guardar instancia de clase en session en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy programando una aplicación web que requiere validación de usuarios, mi idea seria crear una clase "conexión" que se instancie en el momento del ...
  #1 (permalink)  
Antiguo 19/03/2008, 02:22
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Guardar instancia de clase en session

Hola,

estoy programando una aplicación web que requiere validación de usuarios, mi idea seria crear una clase "conexión" que se instancie en el momento del login del usuario y guardar la instancia para poder realizar las consultas a la base de datos que necesite el usuario.

Tengo la clase creada, conecta y valida el usuario, pero no se como guardarla en la session o no esta bien definida para poder guardarla y recuperarla cuando hace falta.

Después de iniciar la session y de requerir ClaseConexion.php he hecho lo siguiente:

(pseudo código)
....

$miconexion=new ClaseConexion;

if ($miconexion.validado()){
$_SESSION["s_conexion"]=$miconexion;
...
}else{
...
}


(El constructor de la clase abre sin parámetros la conexión.)


La idea seria que en cualquier momento se pueda hacer:

$miconexionX=$_SESSION["s_conexion"];
$sql="SELECT....";
...
$miconexionX.cosulta($sql);
...

Después del primer intento obtengo el siguiente error:

Fatal error: main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "ClaseConexion" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in C:\...\palicacion.php on line 10

Intuyo que debo hacer algo para que sea "loaded _before_ unserialize()" o crear una función "a __autoload()" en la definición de la clase.

Pueden orientarme de por donde seguir, o que debo mirarme.

Gracias

Quim
  #2 (permalink)  
Antiguo 19/03/2008, 02:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: Guardar instancia de clase en session

Lo siento, creo que la pregunta se ha contestado varias veces en el foro.

Gracias a todos.

Quim
  #3 (permalink)  
Antiguo 19/03/2008, 06:01
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Guardar instancia de clase en session

Yo me encontré con este problema en su día y opté por evitar guardar objetos en variables de sesión. Puedes guardar el id y demás datos del usuario en variables de sesión y, cuando lo necesites, instancias la clase con esos datos.

Un saludo
  #4 (permalink)  
Antiguo 19/03/2008, 07:20
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: Guardar instancia de clase en session

Tienes que incluir la clase del objeto a antes de iniciar la sesión.
Código PHP:
include 'Miclase.php';
session_start();

if(isset(
$_SESSION["s_conexion"]){
$miconexionX=$_SESSION["s_conexion"];
} else {
$miconexion=new ClaseConexion;
$_SESSION["s_conexion"]=$miconexion;

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.