Foros del Web » Programando para Internet » PHP »

obj con array pasado a SESSION

Estas en el tema de obj con array pasado a SESSION en el foro de PHP en Foros del Web. hola, Hago lo siguiente. ProjectClass Código: private function loadTasks(){ $bd = $_SESSION['bd']; // load all tasks of the project $TaskClass = new TaskClass(1,2, 3, 4, ...
  #1 (permalink)  
Antiguo 04/06/2011, 10:28
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
obj con array pasado a SESSION

hola,
Hago lo siguiente.
ProjectClass
Código:
private function loadTasks(){
        $bd = $_SESSION['bd'];
        // load all tasks of the project
        $TaskClass = new TaskClass(1,2, 3, 4, 5);
         // Cargo de  mysql  a l'array de objctsTaskClass .a on parentid=0 osea el padre sin padre.
 $dataset = $bd->loadMainTasks($this->getProjectId());
while ($registro = mysql_fetch_array($dataset)) {
    $this->createMainTask(0,$registro['name'], $registro['initialdate'], $registro['enddate'], $registro['desc']);
            }
// Cargo de  mysql  a l'array de objctsTaskClass .a on parentid=x osea el padre con padre/s.
 $dataset = $bd->loadTask($this->getProjectId());
 $TaskClass = new TaskClass(1,2,3,4,5);
 while ($registro = mysql_fetch_array($dataset)) {
     if($registro['parentid'] !="0"){
  $TaskClass->addChild($registro['parentid'],$registro['name'],$registro['initialdate'], $registro['enddate'], $registro['desc']);
     }
 }
    }
Donde llamo los métodos.

Código:
$ProjectClass = $_SESSION["ProjectClass"];
$PoorChilds = $ProjectClass->getArrayOfTask();
echo $PoorChilds[0]->getNameProject();
Pero me sale el siguiente error:

Código:
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 &quot;TaskClass&quot; 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 E:\EasyPHP-5.3.6.0\www\Exam\pages\homepageC2.php on line 28
Gracias de antemano

Última edición por marcwolf; 04/06/2011 a las 10:33
  #2 (permalink)  
Antiguo 04/06/2011, 10:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: obj con array pasado a SESSION

Lee esto http://php.net/manual/en/function.main.php Además las instrucciones de todo lo que tienes que hacer está indicado en el error. ¿Lo trataste? ¿Estás usando serialize para pasar la clase por la sesión? Si no pues trata de usarlo, es lo ideal para pasar objetos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/06/2011, 11:56
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: obj con array pasado a SESSION

hola!,
Es muy nulo mi conocimiento de php, no sé que es lo que tengo k hacer exactamente.

Encontre esta página:http://www.php-es.com/language.oop.serialization.html

pero me sale otro error ;

Warning: unserialize() expects parameter 1 to be string, object given in E:\EasyPHP-5.3.6.0\www\Exam\pages\homepageC2.php on line 10

Fatal error: Call to a member function getArrayOfTask() on a non-object in E:\EasyPHP-5.3.6.0\www\Exam\pages\homepageC2.php on line 26

Hize lo siguiente;

Código:
    $ProjectClass = serialize($ProjectClass);
 $_SESSION["ProjectClass"] =  $ProjectClass;
y
Código:
$ProjectClass = unserialize($_SESSION["ProjectClass"]);
Bueno me he informado más i creo que tengo k poner algo así pero aplicado a mi obj, no?

public function __sleep() {
mysql_close($this->link);
return array('server', 'username', 'password', 'database');
}

public function __wakeup() {
$this->connect();
}

// private functions
private function connect(){
$this->link = mysql_connect($this->server, $this->username, $this->password);
mysql_select_db($this->database, $this->link) or die ("No se ha podido conectar con la base de datos");
}

Y he visto algunos programas donde no hacen esto de serialize o unserialize y encambio usan obj i lo pasan a session, a qué se debe? es que son más simples los obj?
  #4 (permalink)  
Antiguo 04/06/2011, 12:47
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: obj con array pasado a SESSION

Como leí por ahí, sólo era meter el session_start(); después del include_once, solucionado. No hace falta hacer serialize o unserialize , php lo hace automaticamente :3

Etiquetas: session
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

SíEste tema le ha gustado a 1 personas




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