Bonjour,
je dispose d'un script JpGraph "graph.php5" appelé par "main.php5" sous forme de img src="graph.php5" comme il se doit.
Comment dois je faire pour que "graph.php5" reconnaisse les variables de session définies dans "main.php5" ?
Merci.
Bonjour,
je dispose d'un script JpGraph "graph.php5" appelé par "main.php5" sous forme de img src="graph.php5" comme il se doit.
Comment dois je faire pour que "graph.php5" reconnaisse les variables de session définies dans "main.php5" ?
Merci.
Bonjour,
Rien!
Logiquement les variables de sessions seront accessibles dans graph.php5.
Elles ne le sont pas, j'ai vérifié, mon problème vient de là.
J'appelle graphHisto.php5 dont voici le code :
dans mon script appelant via img src="graphHisto.php5"
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 <?php require_once("./jpgraph-2.2/src/jpgraph.php"); require_once("./jpgraph-2.2/src/jpgraph_error.php"); require_once("./jpgraph-2.2/src/jpgraph_line.php"); require_once("./jpgraph-2.2/src/jpgraph_bar.php");for($i=0;$i<count($_SESSION['spectretfaible']);$i++) { $data1[$i] = $_SESSION['spectretfaible'][$i]; } for($i=0;$i<count($_SESSION['spectrefaible']);$i++) {$data2[$i] = $_SESSION['spectrefaible'][$i]; } // Create the graph. These two calls are always required $graph = new Graph(500,400,"auto"); $graph->SetScale("textlin"); $graph->SetShadow(); $graph->img->SetMargin(40,30,20,40); $lesGraphes = array(); // Create the bar plots if(count($data1)>0) { $b1plot = new BarPlot($data1); $b1plot->SetFillColor("orange"); $b1plot->value->Show(); array_push($lesGraphes,$b1plot); } if(count($data2)>0) { $b2plot = new BarPlot($data2); $b2plot->SetFillColor("blue"); $b2plot->value->Show(); array_push($lesGraphes,$b2plot); } // Create the grouped bar plot $gbplot = new AccBarPlot($b1plot,$b2plot); // ...and add it to the graPH $graph->Add($gbplot); $graph->title->Set("Accumulated bar plots"); $graph->xaxis->title->Set("X-title"); $graph->yaxis->title->Set("Y-title"); $graph->title->SetFont(FF_FONT1,FS_BOLD); $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD); // Display the graph $graph->Stroke(); ?>
Si je créé des tableaux de valeur dans graphHisto.php5 même, ça trace, par contre si j'appelle les variables de session (tableaux remplis, vérifié par print($_SESSION)) ça trace pas. dois je faire un require_once graphHisto.php5 dans mon script appelant où quoi que ce soit ?
Je suis perdu, merci de votre aide.
as tu fait session_start() ?
sur toutes les pages utilisant les sessions ..
non, je fais un session_start() uniquement sur mon script appelant, sinon, ça réinitialiserait le conteneur de session non ?
Et bien non justement. session_start démarre la session en tentant de récupérer la session déjà ouverte via l'identifiant de session que le client émet (par cookies de session ou dans ses requêtes). Si vous ne faites pas appel à session_start vous ne pouvez pas récupérer vos données ni même en définir d'autres.Envoyé par mnem0
Les manipulations des données passent par le tableau superglobal $_SESSION : que ce soit pour en ajouter, modifier, supprimer, écraser, etc.
merci beaucoup, je viens juste de lire vos cours sur les sessions.
Il y a quelques temps un intervenant de ce forum m'avait dit de ne pas faire de session_start() dans chaque page, je viens quand même de rajouter un session_start() au début de chacune d'elles, ça ne fonctionne toujours pas.
Je fais un print_r dans mon script appelant, je vois mes tableaux de session plein, par contre mon fichier graph.php5 vu que je l'appelle via un img src="graph.php5" je ne peux pas faire d'écho, et si je m'amuse à l'inclure dans mon fichier appelant, ça biaiserait le resultat d'un print_r($_SESSION) au sein du code de graphe :/
Je ne vois pas comment faire.
Merci quand même
Il est nécessaire sur les pages qui utilisent les sessions : inutile de le faire figurer dans les scripts qui n'en ont pas besoin. Par ailleurs on peut faire démarrer automatiquement les sessions via la directive de configuration session.auto_start mais ce n'est pas conseillé.Envoyé par mnem0
Pour débogage, rien ne vous empêche d'ajouter ce print_r et d'appeler ce script manuellement après celui qui définit vos variables de session (profitez-en pour mettre error_reporting au moins à E_ALL).Envoyé par mnem0
Partager