Bonjour à tous,

Pouvez-vous m'aider à utiliser les deux fonctions serialize et unserialize ?
J'en ai besoin pour le developpement d'une application PHP orienté objet.
J'ai une classe "TEST" que j'utilise comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
 
$obj = new TEST();
$obj->CREATE(2);
echo "création objet ok : ".$obj->GET_LBLAPPLICATION();
$_SESSION['tmp'] = serialize($obj);
echo "<br />Dans la session : ".$_SESSION['tmp'];
unset($obj);
?>
<br />
<a href='TEST.SERIALIZATION.PHP'>Suite</a>
Mon premier echo me retourne bien le libelle de l'application (ASKPLAN).
Mon deuxième echo me retourne ceci :
O:4:"TEST":4:{N;s:7:"ASKPLAN";N;N;N;}

(Je voudrais savoir egalement à quoi correspond cette chaine, je suppose que le O c'est pour Object, "TEST" c'est le nom de ma classe, mais le reste : "N" et "s", le 7 c'est quoi?)

Je continue sur l'autre page et je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
$obj = unserialize($_SESSION['tmp']);
echo "test unserialize : ".$obj->GET_LBLAPPLICATION();
 
unset($obj);
et là c'est le drame... voici ce que ca me retourne :
Notice: unserialize() [function.unserialize]: Error at offset 16 of 37 bytes in D:\Apache_www\DSC\TEMP\TEST\TEST.SERIALIZATION.PHP on line 9

J'ai ajouter dans ma classe "TEST" les deux fonctions necessaire à la serialisation et deserialisation à savoir __wakeup() et __sleep()
Voici ce qu'elles contiennent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
public function __wakeup()
{
	$this->idapplication=$this->__wakeup[0];
	$this->lblapplication=$this->__wakeup[1];
	$this->urlapplication=$this->__wakeup[2];
	$this->ObjOracle=$this->__wakeup[3];
}
 
public function __sleep()
{
	return array($this->idapplication, $this->lblapplication, $this->urlapplication, $this->ObjOracle);
}
A mon avis pour la fonction "__wakeup()" c'est pas ca du tout, mais c'est ce que je viens d'essayer de faire et je voulais le montrer.

Si quelqu'un peut m'aider.