Utilisation de la librairie JpGraph PHP

Résolu/Fermé
cyn - 26 sept. 2011 à 13:58
 Utilisateur anonyme - 27 sept. 2011 à 10:38
Bonjour,

Je débute avec le php et je réalise un site sur lequel je dois représenter des données stockées dans une de mes tables sous forme d'un graphique.
J'ai cherché et j'ai trouvé la librairie JpGraph qui est apparemment très simple et très puissante.
J'ai récupéré un code fourni sur le site officiel :

http://jpgraph.net/features/src/show-example.php?target=new_line1.php

j'ai bien téléchargé la libraire et mes chemins pour les include sont vérifié
include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_line.php");

Mais quand je fais appel à ma page localhost/stats_hebdo_jpgraph.php aucun graphe ne s'affiche mais plutôt une suite de symboles et lettres.

Merci de bien vouloir m'aider ^^

2 réponses

Utilisateur anonyme
26 sept. 2011 à 14:45
Bonjour,

Il doit vous manquer un header pour spécifier le type mime

genre header('Content-type:image/png');

Mais c'est étonnant que JpGraph ne gère pas ça, vous avez le bout de code qui génère le graphique ?
0
Merci d'avoir répondu ^^

j'ai fait un copier/coller du code dans cette page http://jpgraph.net/features/src/show-example.php?target=new_line1.php à savoir :
<?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');

$datay1 = array(20,15,23,15);
$datay2 = array(12,9,42,8);
$datay3 = array(5,17,32,24);

// Setup the graph
$graph = new Graph(300,250);
$graph->SetScale("textlin");

$theme_class=new UniversalTheme;

$graph->SetTheme($theme_class);
$graph->img->SetAntiAliasing(false);
$graph->title->Set('Filled Y-grid');
$graph->SetBox(false);

$graph->img->SetAntiAliasing();

$graph->yaxis->HideZeroLabel();
$graph->yaxis->HideLine(false);
$graph->yaxis->HideTicks(false,false);

$graph->xgrid->Show();
$graph->xgrid->SetLineStyle("solid");
$graph->xaxis->SetTickLabels(array('A','B','C','D'));
$graph->xgrid->SetColor('#E3E3E3');

// Create the first line
$p1 = new LinePlot($datay1);
$graph->Add($p1);
$p1->SetColor("#6495ED");
$p1->SetLegend('Line 1');

// Create the second line
$p2 = new LinePlot($datay2);
$graph->Add($p2);
$p2->SetColor("#B22222");
$p2->SetLegend('Line 2');

// Create the third line
$p3 = new LinePlot($datay3);
$graph->Add($p3);
$p3->SetColor("#FF1493");
$p3->SetLegend('Line 3');

$graph->legend->SetFrameWeight(1);

// Output line
$graph->Stroke();

?>

mais ça donne du charabia... j'ai essayé avec votre header mais ça fait la même chose.
Je suis complètement perdue dedans :(
0
Utilisateur anonyme
26 sept. 2011 à 15:13
Ca c'est louche

$theme_class=new UniversalTheme;


Ca doit générer une erreur, essayez ça au minimum:

$theme_class=new UniversalTheme();


Enlevez le header que j'ai suggéré (mauvaise idée), en fait le code de votre script doit contenir une erreur quelque part, peut-être ce que je viens de voir.
0
Non ça bloque toujours :(
Je ne connais pas du tout ces trucs et malheureusement je dois me débrouiller pour faire les graphes en une semaine chrono...
0
Utilisateur anonyme
26 sept. 2011 à 15:22
Pour trouver ce qui ne va pas faites ceci (laborieux mais bon).

Commentez le $graph->stroke(); et essayez ainsi, vous verrez peut-être un message d'erreur, mais pour $theme_class=new UniversalTheme();, gardez cette syntaxe, il y a forcément des parenthèses.
0
j'ai essayé -> page vide :(

Le problème c'est que je peux pas trop déboguer puisque je travaille sur un serveur distant et j'utilise DreamWaver... pour essayer de trouver les erreurs j'exécute mes scripts en local en utilisant ma bdd distante ( en passant par un tunnel ssh) pour voir les erreurs, quand j'exécute directement sur le serveur j'ai juste des erreurs 500 !
0
Utilisateur anonyme
26 sept. 2011 à 15:36
Pour être certain de voir toutes les erreurs mettez en début de script ceci :

error_reporting (E_ALL);
0
j'ai testé, le même charabia réapparait, sans la moindre erreur...
0