Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > JpGraph
JpGraph Forum d'entraide pour la bibliothèque JpGraph permettant de manipuler des images en PHP. Avant de poster -> tutoriels JpGraph
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 16/01/2008, 11h31   #1
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 31
Points : 31
Points : 31
Par défaut [JpGraph] Problème d'affichage dans Firefox

Bonjour à tous,

Je cherche à faire un script :
- me générant une image
- enregistrant cette image sur le serveur
- affichant l'image

Ce Script fonctionne très bien sous IE, mais sous Firefox j'obtiens le message suivant : L'image “[localhost]” ne peut être affichée car elle contient des erreurs

Structure de mon code:
- Dans statistiques.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
...
        $StatsTiers->GenereImage();
 
        # On affiche le résultat
        #=======================
        $App->DisplayHeader();
        $StatsTiers->DisplayHeader();
 
        $rand=rand();
        echo "<img src=\""._DOSSIER_IMAGES_JPGRAPH."stats_".$_SESSION["MA_VARIABLE"].".png?$rand\">";
        $App->DisplayFooter();
- Dans ma classe StatsTiers, la méthode GenereImage() donne ceci:

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
   function GenereImage()
   {
      [... Code générant mes tableaux de données depuis une base ...]
 
      # Construction du graphe en Camembert
      #=================================
      // Size of graph
      $width=750; 
      $height=350;
 
      // Create the graph. 
      $graph_c = new PieGraph ($width,$height);    
      $graph_c->title->Set($Langue->REPARTITION_CAUSES);
      $graph_c->title->SetFont(FF_FONT1,FS_BOLD,8);
      $graph_c->subtitle->Set($Langue->REPARTITION_CAUSES_ST.$this->date_debut.$Langue->ET_LE.$this->date_fin);
      $graph_c->subtitle->SetFont(FF_FONT1,FS_NORMAL,6);
      $graph_c->footer->right->Set("(".$Langue->GENERE_LE." ".date("d/m/Y H:i:s").")");
      $pie_plot = new PiePlot($tab_donnees_graphe);
      $pie_plot->SetGuideLines(true,false);
      $pie_plot->SetGuideLinesAdjust(1.1);
      $pie_plot->SetSliceColors($tab_couleurs);
      $pie_plot->SetLegends($tab_libelle_graphe);
      $pie_plot->SetCenter(0.3,0.6);
      $graph_c->Add($pie_plot);
 
      # Construction du graphe en barre
     #=========================================
      // Size of graph
      $width=750; 
      $height=count($tab_donnees_autres)*30;
 
      // Create the graph. 
      $graph = new Graph($width,$height,"auto");    
      $graph->SetScale("textlin");
      $graph->Set90AndMargin(250,20,50,20);
 
      // Setup title
      $graph->title->Set($Langue->DETAILS_AUTRE);
      $graph->title->SetFont(FF_VERDANA,FS_BOLD,8);
      $graph->SetShadow();
      $graph->xaxis->SetTickLabels($tab_libelles_autres);
      $graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,8);
      $graph->xaxis->SetLabelAlign('right','center');
      $graph->yaxis->scale->SetGrace(20);
 
      // Now create a bar pot
      $bplot = new BarPlot($tab_donnees_autres);
      $bplot->SetFillColor("orange");
      $bplot->SetShadow();
      // We want to display the value of each bar at the top
      $bplot->value->Show();
      $bplot->value->SetFont(FF_ARIAL,FS_BOLD,8);
      $bplot->value->SetAlign('left','center');
      $bplot->value->SetColor("black","darkred");
      $bplot->value->SetFormat('%d');
      $graph->Add($bplot);
 
      # On créé une image composée des deux graphes
      #=========================================
      $mgraph = new MGraph();
      $xpos1=3;$ypos1=3;
      $xpos2=3;$ypos2=360;
      $mgraph->Add($graph_c,$xpos1,$ypos1);
      $mgraph->Add($graph,$xpos2,$ypos2);
      $mgraph->Stroke(_DOSSIER_IMAGES_JPGRAPH."stats_".$this->reference.".png");
   }
Dans IE : mon fichier est correctement créé et mon image s'affiche sans problème
Dans FireFox : mon fichier est correctement créé mais j'obtient l'erreur décrite ci-dessus. Apparrement celle-ci apparait au moment du stroke.

Quelqu'un aurait une petite idée pour me dépatouiller.
Merci d'avance.
Eric_M_78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 15h21   #2
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 31
Points : 31
Points : 31
Je vois que mon sujet déchaine les foules
Mais voici quand même le résultat de mes différents test et opinions (purement) personnelles:

La fonction Stroke() pour la class MGraph ne fonctionne apperrement pas comme la fonction Stroke() de la class Graph.

Je m'expliques:

- Pour la classe Graph:
* Stroke() renvoi les données directement au navigateur.
* Stroke('Nom_de_fichier') renvoi les données dans le fichier que l'on souhaite créer mais ne renvoie aucune donnée au navigateur.

- Pour la class MGraph: Selon la doc jpgraph, le Stroke est sensé fonctionner exactement de la même façon.
Mais d'après mes test (j'utilise jpgraph 2.3 pro avec PHP 5.2.4) j'ai l'impression que l'on a ceci :
* Stroke() renvoi les données directement au navigateur.
* Stroke('Nom_de_fichier') renvoi les données dans le fichier que l'on souhaite créer mais renvoie aussi des données au navigateur.

Sous Firefox je dois donc recevoir des headers d'image alors que j'en attend pas et firefox affiche du coup son message d'erreur pour une image non conforme.

J'ai détourné le problème avec une redirection (mon script créant l'image redirige vers le script affichant l'image) mais si quelqu'un a plus d'info solides à ce sujet ça m'interesses.
Eric_M_78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h18.


 
 
 
 
Partenaires

Hébergement Web