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 "PersonClass" 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:
Donde salta el error es aquí<?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"); ?>
headerC.php
Código:
PersonClass<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>
Código:
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. <?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; }*/ } ?>