• Viernes 15 de Noviembre de 2024, 05:56

Autor Tema:  Objeto Incompleto  (Leído 1323 veces)

hachicito

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Objeto Incompleto
« en: Lunes 22 de Agosto de 2005, 17:44 »
0
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

gnfrs

  • Miembro MUY activo
  • ***
  • Mensajes: 195
    • Ver Perfil
    • http://www.laguns.com.ar/
Re: Objeto Incompleto
« Respuesta #1 en: Sábado 27 de Agosto de 2005, 01:00 »
0
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.
Gabriel S. Luraschi

·· Videos de Guns and Roses LAGUNS - Banda tributo a Guns N' Roses ··

.