Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2007, 01h04   #1
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 91
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 91
Points : 17
Points : 17
Par défaut variable de session qui se vide entre deux pages

Bonjour,

j'ai un probleme avec une variable de session qui contient un tableau.
Ledit tableau voit chacun de ses elements se vider entre deux pages
c'est un tableau d'objets "cluster" cf cluster.php5
donc bizarrement le tableau ne change pas de taille mais tous les elements deviennent vides.

ainsi le tableau en question : $_SESSION['clustersTries']
est plein dans compare.php5 juste avant d'envoyer la form submit_xml à generate.php5 : voici le code de compare.php5
Code :
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
 
<?php
session_start();
require_once('mdl/mdl-php/functions.inc.php5');
if (isset($_POST['compare']))
{	
	$requete = stripslashes($_POST['search']);
	$recherche = urlencode($requete);
 
	if ((sizeof($_SESSION['result_vivisimo']) > 1) || (sizeof($_SESSION['result_iboogie']) > 1) || (sizeof($_SESSION['result_gigablast']) > 1) || (sizeof($_SESSION['result_clusty']) > 1)){
		$nbr_result = compare_result();
	}else{
		$nbr_result = 0;
	}
 
}else
{echo header('location: index.php?erreur=1');}
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="shortcut icon" href="./image/cme.ico" />
<link rel="stylesheet" type="text/css" href="mdl/mdl-css/mmc-css.css">
<title>Clustering Meta-Engine</title>
</head>
<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0">
 
 
<?php
	remplisSessionCluster($_SESSION['result_vivisimo']);
	remplisSessionCluster($_SESSION['result_clusty']);
	remplisSessionCluster($_SESSION['result_iboogie']);
	remplisSessionCluster($_SESSION['result_gigablast']);
	for($i=0;$i<sizeof($_SESSION['clusters']);$i++)
	{
		$cluster = new cluster($_SESSION['clusters'][$i]);
		$_SESSION['clusters'][$i] = $cluster;
	}
	TriTabClusters($_SESSION['clusters']);//remplit $_SESSION['clustersTries']
	echoCluster($_SESSION['clustersTries']);//là il est plein
?>
 
<div class="page" align="center">
 
<br /><a href="./index.php"><img src="./image/cme.jpg" width="232px" height="124px" border="0" alt="Clustering Meta-Engine" /></a><br /><br />
 
<form name="moteur" action="./result.php5" method="post" style="border:0px;margin:0px;">
<span class="sstitre">Enter your research :</span><br /><br />
<input type="text" name="recherche" class="formulaires" style="width:385px;" value='<?php echo $requete; ?>' /><br /><br />
<center><input type="submit" name="envoi" value="Search" class="boutons_formulaires" /></center>
</form>
 
<br /><br />
 
<table cellpadding="0" cellspacing="0" border="0" bordercolor="#DDDDDD">
<tr>
<td align="left">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<b>Result<?php if ($nbr_result > 1){ echo 's <span class="texte_erreur">'.$nbr_result.'</span>'; }else{ echo ' <span class="texte_erreur">0</span>'; } ?> for <?php echo $requete; ?></b>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<td align="left">
<form name="generate_csv" action="./generate.php5" method="post" target="_blank" style="border:0px;margin:0px;">
<input type="submit" name="csv" value="Generate XLS Data Format" class="boutons_formulaires" />
<input type="hidden" name="search" value='<?php echo $requete; ?>' />
<!-- <input type="submit" disabled="disabled" name="generate" value="Generate VNA Data Format" class="boutons_formulaires" /> -->
</form>
</td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<td align="center">
<form name="generate_vna" action="./generate.php5" method="post" target="_blank" style="border:0px;margin:0px;">
<input type="submit" name="vna" value="Generate VNA Data Format" class="boutons_formulaires" />
<input type="hidden" name="search" value='<?php echo $requete; ?>' />
<!-- <input type="submit" disabled="disabled" name="generate" value="Generate VNA Data Format" class="boutons_formulaires" /> -->
</form>
</td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<td align="right">
<form name="generate_xml" action="./generate.php5" method="post" target="_blank" style="border:0px;margin:0px;">
<input type="submit" name="xml" value="Generate XML global score" class="boutons_formulaires" />
<input type="hidden" name="search" value='<?php echo $requete; ?>' />
<!-- <input type="submit" disabled="disabled" name="generate" value="Generate xml" class="boutons_formulaires" /> -->
</form>
</td>
 
</tr>
</table>
 
<br /><br />
 
<table cellpadding="0" cellspacing="0" border="1" bordercolor="#DDDDDD">
<tr>
<td width="260px" valign="top" style="padding-left:10px;padding-right:10px;" align="left">
<center><a href="http://vivisimo.com/search?query=<?php echo $recherche; ?>&v%3Aproject=vivisimo-com&v%3Asources=Web" target="_blank"><img src="./image/vivisimo.gif" border="0" /></a></center><br />
<?php
if (sizeof($_SESSION['result_vivisimo']) > 1){
	foreach ($_SESSION['result_vivisimo'] as $result){
		if ($result != ''){
			$parenth = strrpos($result, "(");
			$lien = substr($result, 0, $parenth);
			echo '<a href="./result.php5?recherche='.$lien.'" class="a"> - '.$result.'</a><br />';
		}
	}
}elseif(isset($_SESSION['result_vivisimo'][0]) && $_SESSION['result_vivisimo'][0] != ''){
	$parenth = strrpos($_SESSION['result_vivisimo'][0], "(");
	$lien = substr($_SESSION['result_vivisimo'][0], 0, $parenth);
	echo '<a href="./result.php5?recherche='.$lien.'" class="a"> - '.$_SESSION['result_vivisimo'][0].'</a><br />';
}else{
	echo '<center style="font-size:12px;">No result</center>';
}
?>
<br />
</td>
<td width="260px" valign="top" style="padding-left:10px;padding-right:10px;" align="left">
<center><a href="http://www.iboogie.com/searchtree.asp?name_query=<?php echo $recherche; ?>&name_tab=0&name_do_search=1" target="_blank"><img src="./image/iboogie.gif" border="0" /></a></center><br />
<?php
if (sizeof($_SESSION['result_iboogie']) > 1){
	foreach ($_SESSION['result_iboogie'] as $result){
		if ($result != ''){
			$parenth = strrpos($result, "(");
			$lien = substr($result, 0, $parenth);
			echo '<a href="./result.php5?recherche='.$lien.'" class="a"> - '.$result.'</a><br />';
		}
	}
}elseif(isset($_SESSION['result_iboogie'][0]) && $_SESSION['result_iboogie'][0] != ''){
	$parenth = strrpos($_SESSION['result_iboogie'][0], "(");
	$lien = substr($_SESSION['result_iboogie'][0], 0, $parenth);
	echo '<a href="./result.php5?recherche='.$lien.'" class="a"> - '.$_SESSION['result_iboogie'][0].'</a><br />';
}else{
	echo '<center style="font-size:12px;">No result</center>';
}
?>
<br />
</td>
<td width="260px" valign="top" style="padding-left:10px;padding-right:10px;" align="left">
<center><a href="http://www.gigablast.com/search?n=100&q=<?php echo $recherche; ?>&nrt=51" target="_blank"><img src="./image/gigablast.gif" border="0" /></a></center><br />
<?php
if (sizeof($_SESSION['result_gigablast']) > 1){
	foreach ($_SESSION['result_gigablast'] as $result){
		if ($result != ''){
			$parenth = strrpos($result, "(");
			$lien = substr($result, 0, $parenth);
			echo '<a href="./result.php5?recherche='.$lien.'" class="a"> - '.$result.'</a><br />';
		}
	}
}elseif(isset($_SESSION['result_gigablast'][0]) && $_SESSION['result_gigablast'][0] != ''){
	$parenth = strrpos($_SESSION['result_gigablast'][0], "(");
	$lien = substr($_SESSION['result_gigablast'][0], 0, $parenth);
	echo '<a href="./result.php5?recherche='.$lien.'" class="a"> - '.$_SESSION['result_gigablast'][0].'</a><br />';
}else{
	echo '<center style="font-size:12px;">No result</center>';
}
?>
<br />
</td>
<td width="260px" valign="top" style="padding-left:10px;padding-right:10px;" align="left">
<center><a href="http://clusty.com/search?input-form=clusty-simple&v%3Asources=webplus&query=<?php echo $recherche; ?>" target="_blank"><img src="./image/clusty.gif" border="0" /></a></center><br />
<?php
if (sizeof($_SESSION['result_clusty']) > 1){
	foreach ($_SESSION['result_clusty'] as $result){
		if ($result != ''){
			$parenth = strrpos($result, "(");
			$lien = substr($result, 0, $parenth);
			echo '<a href="./result.php5?recherche='.$lien.'" class="a"> - '.$result.'</a><br />';
		}
	}
}elseif(isset($_SESSION['result_clusty'][0]) && $_SESSION['result_clusty'][0] != ''){
	$parenth = strrpos($_SESSION['result_clusty'][0], "(");
	$lien = substr($_SESSION['result_clusty'][0], 0, $parenth);
	echo '<a href="./result.php5?recherche='.$lien.'" class="a"> - '.$_SESSION['result_clusty'][0].'</a><br />';
}else{
	echo '<center style="font-size:12px;">No result</center>';
}
?>
<br />
</td>
</tr></table>
 
<br /><br />
 
<a href="./fichier/netdraw2.zip" class="a">Download Netdraw to read VNA Data Format</a>
 
<br /><br /><br />
 
<span class="texte_little">Clustering Meta-Engine &copy; MIET 2006 - MDISTIC 2007</span>
<br /><br />
</div>
</body>
</html>
puis curieusement $_SESSION['clustersTries'] perd tout son contenu (mais pas sa taille) arrivé dans generate.php5 dont voici le code

Code :
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
 
<?php
session_start();
require_once('mdl/mdl-php/functions.inc.php5');
echoCluster($_SESSION['clustersTries']);// là il est devenu vide, zarb
if(isset($_POST['csv'])){
 
	$requete = $_POST['search'];
	$requete = str_replace(' ','_',$requete);
	generate_xls($requete);
 
}elseif(isset($_POST['vna'])){
 
	$requete = $_POST['search'];
	$requete = str_replace('"','_',$requete);
	$requete = str_replace('\'','_',$requete);
	$requete = str_replace('+','_',$requete);
	$requete = str_replace('-','_',$requete);
	$requete = str_replace(' ','_',$requete);
	generate_vna($requete);	
}
elseif(isset($_POST['xml']))
{
	createXml($_SESSION['clustersTries']);	
}
 
else
{
	echo header('location: index.php?erreur=1');	
}
 
?>
(aucun code arbitraite provenant de l'include n'est executé, j'ai checké, je l'ai pas inclus ici pour pas faire peur, je peux le fournir si besoin)

un pitit coup de main serait le bienvenu. merci
mnem0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 09h04   #2
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Quel est le code de echoCluster ?

Et surtout est-ce un probleme seulement avec $_SESSION['clustersTries'] ? Les autres variables de session passent bien ?
__________________
Etre à son compte, y'a rien de mieux !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 12h33   #3
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 91
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 91
Points : 17
Points : 17
J'ai testé avec une autre variable de session : pas de probleme :/

code de echoCluster :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
function echoCluster($tab)
{
	if(sizeof($tab>0))
	{
			for($i = 0; $i<sizeof($tab); $i++)
			{
				echo("\n"." nom au rang ".$i." : ".$tab[$i]->nom." et score : ".$tab[$i]->score."\n");
			}
	}
	else echo("\n tableau vide"); 
}
la classe cluster.php5 :
Code :
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
<?php
error_reporting(0);
class cluster
{
var $nom;
var $score;
var $tab;
var $longueurTab;
var $scoreBrut;
	function cluster($source)
	{
		$this->tab = array();
		$this->tab=explode(" ",$source);
		$this->nom = "";
		for($i=0;$i<sizeof($this->tab)-1;$i++)
		{
			$this->nom.=$this->tab[$i];
			if($i<sizeof($this->tab)-2)
			{$this->nom.=" ";}
		}
		$this->scoreBrut = $this->tab[sizeof($this->tab)-1]; 
		$this->score = substr($this->scoreBrut,1,strlen($this->scoreBrut)-2);
	}
}
?>
mnem0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 14h02   #4
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Est-ce que tu inclues bien cluster.php5 dans generate.php5 ? Car pour arriver à relire les clusters, ton script doit connaitre la classe cluster.
__________________
Etre à son compte, y'a rien de mieux !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 15h09   #5
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 91
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 91
Points : 17
Points : 17
le require_once de cluster.php5 est présent dans mdl/mdl-php/functions.inc.php5 lui même inclus dans generate.php5
j'ai tout de même inclus cluster.php5 directement dans generate.php5 pour etre sur, ça ne marche pas.
mnem0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 15h28   #6
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Code :
1
2
3
4
<?php
session_start();
require_once('mdl/mdl-php/functions.inc.php5');
?>
Essaie plutot ça :

Code :
1
2
3
4
<?php
require_once('mdl/mdl-php/functions.inc.php5');
session_start();
?>
La classe semble devoir être inclue avant le démarrage de la session :
http://cyberzoide.developpez.com/php...sion/#register
__________________
Etre à son compte, y'a rien de mieux !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 15h53   #7
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 91
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 91
Points : 17
Points : 17
toujours pas :/
mnem0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h09.


 
 
 
 
Partenaires

Hébergement Web