IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[JpGraph] Problème d'affichage dans Firefox


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Points : 35
    Points
    35
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] problème affichage dans Firefox Recherche :
    Par Scipion80 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 30/09/2009, 21h07
  2. Réponses: 5
    Dernier message: 20/02/2009, 23h07
  3. Problème d'affichage dans Firefox
    Par virgul dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 19/12/2006, 12h09
  4. Problème d'affichage dans un composant TScrollBox
    Par erossi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/09/2005, 12h29
  5. [débutant]problèmes d'affichage dans un tableau
    Par Hastur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 16/08/2005, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo