Bonjour j'ai un soucis apparement lié à l'utilisationd'un objet comme variable de session.

Quand après l'attribution, je réutilise l'objet plus tard dans la session j'ai droit à ce joli mais obscure message :

The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "gestionnaireSels" 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 G:\test\site\LOGIN.php on line 56

voici ma classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class gestionnaireSels {
	// toujours trié dans l'ordre croissant des dates
	// lesSels[x] avec x € N+
	// lesSels[x] = array (key (time) => val (sel))
	var $lesSels;
 
	function gestionnaireSels() {
		$this->lesSels = array();
	}
 
	// ajotue un sel, en faisant de l'espace si nécessaire
	// renvoie la paire indice (x) val (sel)
	function addSel() {
		$this->dropSelsPerimes();
 
		if (count($this->lesSels) == MAX_SELS) {
			array_shift($this->lesSels);
		}
 
		$pos = count($this->lesSels);
		$key = time();
		$val = $this->genereSel();
 
		echo($pos." : ".$key." ".$val."<br>");
		$this->lesSels[$pos] = array($key => $val);
 
		return array($pos => $val);
	}
 
	// génère un grain de sel
	function genereSel() {
		$num = mt_rand();
		return md5($num);
	}
 
	function getSel($key) {
		if (array_key_exists($key,$this->lesSels)) return $this->lesSels[$key];
		return NULL;
	}
 
	function getSelNonPerimes($key) {
		$this->dropSelsPerimes();
		return getSel($key);
	}
 
	// parcours tout les éléments périmés et les supprime
	function dropSelsPerimes() {
		echo("<br>XX"."-"."XX<br>");
		reset($this->lesSels);
		while (list($key,$val) = each($this->lesSels)) {
			echo("<br>XX"."O"."XX<br>");
			$x = current($val);
			$time = intval( $x[0] );
			echo("<br>XX".$time."XX<br>");
			if ($time >= (time() + PEREMPTION_SEL)) {
				unset($this->lesSels[$key]);
			} else  break;
		}
	}
}
et voici l'apelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
if (!array_key_exists("sels",$_SESSION)) $_SESSION["sels"] = new gestionnaireSels();
 
list($selKey,$selVal) = current( $_SESSION["sels"] -> addSel() );