$client = new User();
$_SESSION['client'] = $client; $client = $_SESSION['client']; // inverse de ce qu'on a fait avant
$client->attribut1;
$client->method1;
//...
$_SESSION['Auth']= array(
'User'=>$User,
'id'=>$utilisateur[0]["id"],
'mail'=> $User->mail,
'password'=> $_POST['password']
);
header('location:profile.php');
profil.php
session_start();
require "core/core.php";
require "core/auth.php";
if(Auth::islog()){
echo ' yesss<br />';
}
else{
header('location:index.php');
}
echo $_SESSION['Auth']['mail'];
$User = $_SESSION['Auth']['User'];
$User->test();
résultat
<?php
class Student{
private $full_name = '';
private $score = 0;
private $grades = array();
public function __construct($full_name, $score, $grades)
{
$this->full_name = $full_name;
$this->grades = $grades;
$this->score = $score;
}
public function show_full_name()
{
echo $this->full_name;
}
public function show_score()
{
echo $this->score;
}
public function show_grades()
{
print_r($this->grades);
}
function __sleep()
{
return array('full_name','grades');
}
function __wakeup()
{}
}
$student = new Student('bla bla', 'XXX', array('a' => 90, 'b' => 100));
$student->show_full_name();
$student->show_score();
$student->show_grades();
session_start();
$_SESSION['ma_class'] = $student;
?>
Fichier B
<?php
class Student{
private $full_name = '';
private $score = 0;
private $grades = array();
public function __construct($full_name, $score, $grades)
{
$this->full_name = $full_name;
$this->grades = $grades;
$this->score = $score;
}
public function show_full_name()
{
echo $this->full_name;
}
public function show_score()
{
echo $this->score;
}
public function show_grades()
{
print_r($this->grades);
}
function __sleep()
{
return array('full_name','grades');
}
function __wakeup()
{}
}
session_start();
$a = $_SESSION['ma_class'];
$a->show_full_name();
$a->show_score();
$a->show_grades();
?>
Dans cet exemple j'ai utilisé __sleep et __wakeup (qui va avec) pour ne conserver que certaines variables qui sont énoncées dans __sleep.