SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: hachicito en Lunes 22 de Agosto de 2005, 17:44

Título: Objeto Incompleto
Publicado por: hachicito en Lunes 22 de Agosto de 2005, 17:44
este es el error:

Unknown(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition dataaccess of the object you are trying to operate on was loaded _before_ the session was started in D:\www\Cusco\Lib\View\IUSuscripcion.php on line 32


El problema es el siguiente tengo una clase IUBase()
en su constructor inicio la session:

session_start();
 luego inicializa una variable de session
 if( !isset($_SESSION['dataAccess']) )
{
   $_SESSION['dataAccess']= new dataAccess();
   $_SESSION['dataAccess']->connect();//este es cualquier funcion
}


Luego tengo otra clase IUSuscrip que extends IUBase
en su constructor tengo

{
  parent::IUBase();

  $_SESSION['dataAccess']->connect();//intento llamar a la variable de session //definida en IUBase()

}


TODO LO ANTERIOR ES SOLO DEFINICIONES DE CLASES

ESTE SCRIPT SE EJECUTA EN ESTA SECCION:
______________________________________
$page = new IUSuscrip();
...
..
______________________________________

cuando el script hace $page = new IUSuscrip();
la primera ves que cargo la pagina, primero
entra en el constructor IUSuscrip()
alli dentro lo que ejecuta antes que nada es parent::IUBase()
en IUBase() se inicia la session, se inicializa la variable de session 'dataAccess',
ejecuta connect.

luego sale de IUBAse, y ejecuta denuevo $_SESSION['dataAccess']->connect();

ENTONCES LA PRIMERA VEZ QUE CARGO LA PAGINA, TODO ESTAS DE LA HOSTIA
 CORRER NORMAL.

Pero cuando refresco la pagina ese es el problema,
se vuelve a ejecutar:
______________________________________
$page = new IUSuscrip();
...
..
______________________________________

la session es la misma..., luego  ya no entra a
if(!isset($_SESSION['dataAccess'])), por que ya existe

pero cuando sale de parent::IUBase();

no puede ejecutar $_SESSION['dataAccess']->connect();

LA PREGUNTA ES: por que coño no puede, si obviamente ya existe la variable de session.

y me aparece ese jodido message de error.

SI LO QUE ESCRIBI ES MUY CONFUSO
SOLO LES PIDO UNA COSA:

COMO HAGO PARA GUARDAR UN OBJETO(CLASSE), COMO VARIABLE SE SESSION

Y LUEGO A UTILIZO EN MIS PAGINAS.

POR EJEMPLO QUIERO PONER UN OBJETO CARROCOMPRAS COMO VARIABLE DE SESSION, Y DESDE CUALQUIERA DE MIS  PAGINAS, PODER ACCESAR A ESTE OBJETO Y AGREGAR ITEM, ETC

HAROLD VALDIVIA GARCIA.

hachicito@yahoo.es
Título: Re: Objeto Incompleto
Publicado por: gnfrs en Sábado 27 de Agosto de 2005, 01:00
Código: Text
  1. <?
  2. session_start();
  3.  
  4. class chacha {
  5.  
  6.   function chacha() {
  7.  
  8.   }
  9.  
  10.   function ok() {
  11.     echo 'ok';
  12.   }
  13. }
  14.  
  15. if(!isset($_SESSION['obj'])) {
  16.   $_SESSION['obj'] = new chacha();
  17. }
  18.  
  19. $_SESSION['obj']->ok();
  20. ?>
  21.  

No inicies sesión dentro de un objeto, eso tiene poca lógica ya que la sesión se puede utilizar para miles de cosas.

Enviame el script si querés y trato de arreglarlo.

Saludos.