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 "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:
<?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.