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

Error de página modular usando session

Estas en el tema de Error de página modular usando session en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola, Me funcionan bien las session, menos cuando una vez echo el login, llamo a otra página modular por href, que me dice el siguiente ...
  #1 (permalink)  
Antiguo 13/06/2011, 11:47
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Error de página modular usando session

hola,

Me funcionan bien las session, menos cuando una vez echo el login, llamo a otra página modular por href, que me dice el siguiente mensaje;

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;PersonClass&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 /home/marc/public_html/exam2/includes/headerC.php on line 9

Y provado muchas cosas pero me salta el mismo error.

Quizas esque esq no se guarda bien ese obj en session al llamar a otra pagina modular? de que forma tengo que llamar-la entonces? esq estoy haciéndo lo mismo pero con la diferencia de que llamo a otra pagina modular
.. t.t
Login
Código:
elseif($_POST['submit'] == "Login"){
   // Session
// le paso a ObjPersona todos los datos del usuario(personid 	user 	pass 	groupid)
//  y depués paso el obj a SESSION, así no hace falta llamar a los metodos otra vez y también lo uso como mensaje de Benvenida

$personID = $bd->getPersonID($_POST['username']);
$gruopId = $bd->getIDGruopOfPerson($personID);
$PersonClass = new PersonClass("Login",$personID,$_POST['username'],$_POST['password'],$gruopId );

$_SESSION['PersonClass'] = $PersonClass;
// ObjProject class para la gestion de la muestra de  projects
 $ProjectClassLoad = new ProjectClass("Load", NULL, NULL);
 $_SESSION['ProjectClassLoad'] = $ProjectClassLoad ;
   $success = $bd->Login($PersonClass->getUser(), $PersonClass->getPass());

 if ($success){
       echo "Benvingut  ".$PersonClass->getUser();
       echo "<br><a href='./select_project.php'>Click aquí</a> per accedir a la configuració de projectes.";
   }
   else echo "Login incorrecte torna a probar.";

}

Select_project.php

Código:
<?php
session_start();
	        include_once "./clases/PersonClass.php";
        include_once "./clases/GruopClass.php";
        include_once "./clases/ProjectClass.php";
        include_once "./clases/TaskClass.php";
        include_once "./clases/BDController.php";
 
  include("includes/top_page.php");
?>
<div id="wrapper">
    <div id="header">
    	<?php include("includes/headerC.php"); ?>

    </div>
    <div id="menu">
    		
	    </div>	
    <div id="contenido">
    	<?php include("includes/pagesC.php"); ?>
        <br style="clear:both;" />
    </div>
    <div id="footer">
	    <?php include("includes/footer.php"); ?>
    </div>
</div>
<?php include("includes/bottom_page.php"); ?>
Donde salta el error es aquí

headerC.php


Código:
<div id="header">
<?php

$PersonClass = $_SESSION['PersonClass'];
echo "<br><center><b>Bienvenido ".$PersonClass->getUser()."</center></b>";?>
 <p align="right"><a href='pages/Logout.php'> Sortir</a></p>
</div>
PersonClass
Código:
<?php
session_start();
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of PersonaClass
 *
 * @author alex
 */
class PersonClass  {
    private $user;
    private $pass;
    private $personid;
    private $groupid;
    
public function __construct($opcion,$user,$pass,$personid,$groupid){
        if($opcion =="Login"){$this->LoginPersona($user,$pass,$personid,$groupid);}
    }
    /**
     * Asignar persona a grupo
     */
public function Asignar($personid,$groupid){
        $this->personid = $personid;
        $this->groupid = $groupid;
    }
    public function LoginPersona($personId,$user,$pass,$groupid){
        $this->personid = $personId;
        $this->user = $user;
        $this->pass = $pass;
        $this->groupid = $groupid;
    }
  public function CrearPersona($user,$pass){
        $this->pass = $pass;
        $this->user = $user;
    }

    public function getPersonId(){
        return $this->personid;
    }
      public function getGroupId(){
        return $this->groupid;
    }
    public function getUser(){
        return $this->user;
    }
   /*   public function setUser($newuser){
       $this->user =$newuser;
    }*/

    
    public function getPass(){
        return $this->pass;
    }
       /*  public function setUser($newpass){
       $this->pass =$newpass;
    }*/
    
}

?>
También añado que; el servidor php no lo puedo tocar, sólo puedo colgar los archivos, sino ya hubiéra acabado esto prk modificando el php.ini me va sin problemas.

Última edición por marcwolf; 13/06/2011 a las 12:10
  #2 (permalink)  
Antiguo 13/06/2011, 12:25
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Error de página modular usando session

Vale hize lo siguiente;

en login puse;
$_SESSION['gatoFeliz'] ="soy un gato feliz";

en headerC puse ;

$d =$_SESSION['gatoFeliz'];
echo "EEE<br>".$d;

y si que muestra el mensaje :S
  #3 (permalink)  
Antiguo 13/06/2011, 13:19
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Error de página modular usando session

Puse session_start(); depués de los includes como lei en [URL="http://www.forosdelweb.com/f18/guardar-objeto-somo-session-182113/"]aqui[/URL] pero me salta otro error;

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/marc/public_html/exam2/clases/ProjectClass.php:2) in /home/marc/public_html/exam2/index.php on line 7

Y sólo he echo ese cambio, no hay html en las clases...

Etiquetas: modular, página, 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




La zona horaria es GMT -6. Ahora son las 02:44.