PB JPGraph et librairie GD

paulinett Messages postés 51 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 17 octobre 2005 - 7 août 2005 à 15:24
paulinett Messages postés 51 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 17 octobre 2005 - 9 août 2005 à 17:21
Bonjour,



Je suis débutante et j'ai un souci avec JPGraph et la librairie GD.

Je voudrais tracer un graphique en camenbert basé sur une requete SQL et l'insérer dans une page web.

Pour cela, j'ai téléchargé la librairie JPGraph1.19 et je l'ai inclus
dans mon path (php/pear) ! (Je travaille sous easy php 1.8)

J'ai écrit le code correspondant mais j'ai un message d'erreur :

JpGraph Error This PHP installation is not configurend with the GD
Library. Please recompile PHP with GD support to run jpgraph (neither
function imagetypes() not imagecreatefromstring() does exist.



J'ai tappé la commande phpinfo() mais je n'ai pas plus d'infos sur la
librairie GD. Est-ce que quelqu'un pourrait m'aider ? Je ne sais
vraiment pas ce que je dois faire.



Merci d'avance et bonne fin de week-end à tous.



Paulinett'

8 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
7 août 2005 à 16:07
Salut!

Est-ce que GD est bien activé?



Tu devrais (j'espère que c'est aussi le cas avec EasyPHP ) avori un fichier php.ini sur ton disque.



La ligne: extension=php_gd2.dll

doit être décommentée...



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
paulinett Messages postés 51 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 17 octobre 2005
7 août 2005 à 21:01
coucou,

merci pour cette aide. je l'ai fait, en effet la ligne était commentée. seulement, maintenant, un autre problème se pose :
c'est un nouveau message d'erreur et je dois dire que je ne sais pas non plus comment le gérer :(

j'espère que vous pourrez m'aider. je vous remercie d'avance.

paulinett'

voici le message :

JpGraph Error: HTTP headers have already been sent.
Explanation:
HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it's image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).
Most likely you have some text in your script before the call to Graph::Stroke(). If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser.
For example it is a common mistake to leave a blank line before the opening "<?php


et voici mon code :
<HTML>
<HEAD>
<TITLE> Gravité des Interventions </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>



Gravité des Interventions


<?php
require_once("Connect.php");
require_once("jpgraph-1.19/src/jpgraph.php");
require_once("jpgraph-1.19/src/jpgraph_pie.php");

// connexion au serveur et accès à la base
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE, $connexion);

$resultat = mysql_query("SELECT gravite_intervention, COUNT(*)AS nbr_intervention FROM Intervention GROUP BY gravite_intervention");

$i=0;
while ($myrow = mysql_fetch_array($resultat))
{$data[] = $myrow["nbr_intervention"];
$data_names[] = $myrow["gravite_intervention"]; $i++;
}

$filename ="appelcamembert.php";
$PIE_TITLE ="Gravité des Interventions";

// Creer un graphique en camenbert dans la fenetre web
$graph = new PieGraph(520,400,$filename,60);
$graph->SetShadow();

// Affecter un titre au graphique
$graph->title->Set($PIE_TITLE);
$graph->title->SetFont(FF_FONT1,FS_BOLD);

// creer un graphique en camenbert à partir des donnees
$p1 = new PiePlot($data);
$p1->SetCenter(0.35,0.5);
$p1->SetLegends($data_names);

$p1->SetTheme("earth");

// ajouter le graphique a la page web
$graph->Add($p1);
$graph->Stroke();
?>


</HTML>
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
8 août 2005 à 17:33
Salut!

Il ne faut pas effectuer de sortie avant d'utiliser JpGraph ( tout
comme il ne faut pas effectue de sortie avant un session_start ou
l'utilisation de la fonction header ).



Par sortie, j'entends: print, echo, code html, tout ce qui est envoyé au navigateur client...



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
paulinett Messages postés 51 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 17 octobre 2005
9 août 2005 à 09:06
Bonjour,
Merci, cette erreur n'apparait plus.
J'ai divisé mon fichier en deux : camembert.php et appelcamenbert.php. Seulement j'ai un souci de variables. Je ne sais pas trop comment faire passer mes données d'un fichier à l'autre. J'ai mis une variable $parametre et deux autres $note et $nbr mais cela n'a pas l'air de lui plaire.

Voyez-vous une faute ? (sans doute que oui)

Merci encore pour votre aide et bonne journée

Paulinett'

Voici mes scripts :

appelcamenbert.php

<TITLE> Gravité des Interventions </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>




Gravité des Interventions

<?php
require_once("Connect.php");

// connexion au serveur et accès à la base
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE, $connexion);

$resultat = mysql_query("SELECT gravite_intervention, COUNT(*)AS nbr_intervention FROM Intervention GROUP BY gravite_intervention");
$i=0;

while ($tupel=mysql_fetch_array($resultat))
{
$parametre.="$note[$i]=".$tupel[0]."&"; // contient la gravité des interventions (la note attribuée)
$parametre.="$nbr[$i]=".$tupel[1]."&"; // contient le nombre d'intervention
$i++;
}

echo "

</HTML>

camenbert.php

<?php
include ("jpgraph-1.19/src/jpgraph.php");
include ("jpgraph-1.19/src/jpgraph_pie.php");


$graph = new PieGraph(600,400,"auto");
$graph->SetShadow();


$graph->title->Set("Gravite des Interventions");
$graph->title->SetFront(FF_FONT1,FS_BOLD);


$p1 = new PiePlot($nbr);
$p1->SetLegends($note);
$p1->SetCenter(0.4);


$graph->Add($p1);
$graph->Stroke();


?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
9 août 2005 à 10:27
Salut!

Pour passer la variable, tu peux l'encoder et la décoder avec urlencode et urldecode....



echo '";



Et dans le fichier camembert:

$parametre = isset( $_GET['parametre'] ) & !empty( $_GET['parametre'] ) ? urldecode( $_GET['parametre'] ) : '':



if( $parametre == '' )

// erreur ici, pas de parametre passé



@++



R@f


www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
paulinett Messages postés 51 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 17 octobre 2005
9 août 2005 à 13:34
Salut,

Merci pour votre aide mais cela ne fonctionne pas... J'en suis désolée.
J'ai bien ajouté votre code dans le mien mais les messages d'erreur sont toujours les mêmes :

Notice: Undefined variable: note in c:\program files\easyphp1-8\www\appelcamenbert.php on line 22

Notice: Undefined variable: parametre in c:\program files\easyphp1-8\www\appelcamenbert.php on line 22

Notice: Undefined variable: nbr in c:\program files\easyphp1-8\www\appelcamenbert.php on line 23

Notice: Undefined variable: note in c:\program files\easyphp1-8\www\appelcamenbert.php on line 22

Notice: Undefined variable: nbr in c:\program files\easyphp1-8\www\appelcamenbert.php on line 23

Une zone d'image apparait avec une croix rouge à l'intérieure. Apparemment le pb vient aussi du fichier appelcamenbert.php mais je suis bien incapable de la corriger !

Merci encore pour votre aide

Mon code :

appelcamenbert.php
<HTML>
<HEAD>
<TITLE> Gravité des Interventions </TITLE>
<LINK REL = stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>




Gravité des Interventions

<?php
require_once("Connect.php");

// connexion au serveur et accès à la base
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE, $connexion);

$resultat = mysql_query("SELECT gravite_intervention, COUNT(*)AS nbr_intervention FROM Intervention GROUP BY gravite_intervention");
$i=0;

while ($tupel = mysql_fetch_array($resultat))
{
$parametre .= "$note[$i]=".$tupel[0]."&"; // contient la gravité des interventions (la note attribuée)
$parametre .= "$nbr[$i]=".$tupel[1]."&"; // contient le nombre d'intervention
$i++;
}

echo '';

?>

</HTML>

camenbert.php

<?php
include ("jpgraph-1.19/src/jpgraph.php");
include ("jpgraph-1.19/src/jpgraph_pie.php");


$parametre = isset($_GET['parametre']) & !empty( $_GET['parametre'] ) ? urldecode( $_GET['parametre'] ) : '';


if( $parametre == '' )
echo "erreur";


$graph = new PieGraph(600,400,"auto");
$graph->SetShadow();


$graph->title->Set("Gravite des Interventions");
$graph->title->SetFront(FF_FONT1,FS_BOLD);


$p1 = new PiePlot($nbr);
$p1->SetLegends($note);
$p1->SetCenter(0.4);


$graph->Add($p1);
$graph->Stroke();


?>
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
9 août 2005 à 14:01
Avant d'utiliser une variable, il faut
- soit la définir dans tous las cas (pas dans un if ni dans un while) : $var=''; ou $var=0; ...
- soit tester si elle existe (if(isset($var)) ou if(!empty($var))
sinon tu as une "notice" ;o)
-> à faire pour les variables $note, $poaramètre et $nbr

Si tu as une croix rouge à la place de ton image, pour voir l'erreur, fais un clic droit sur la croix / propriétés -> tu copies l'url complète de l'image et tu l'as colles dans la barre d'adresse de ton navigateur... Alors tu verras aparaitre les erreurs de camembert.php

Arn;o)
0
paulinett Messages postés 51 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 17 octobre 2005
9 août 2005 à 17:21
Ah oui, les variables à initialiser... tout à fait !!! (p'tite tête paulinett')
Maintenant j'ai des erreurs sur le camenbert.
Je regarde ca de plus près...

Merci et bonne fin de journée

Paulinett'
0
Rejoignez-nous