Bonjour à tous !
J'ai un souci avec un passage de variable:
J'ai:
* un script cgi dans lequel je vais avoir du texte et des graphes.
* un script cgi qui me permet d'insérer le graph
* un module perl qui dessine le graphe
Voilà une partie du 1er cgi (la page mère):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #!c:\perl\bin\perl.exe print "Content-type:text/html\n\n"; ... .....du texte ... etc ... ....... @pie0=('1','2','3','4'); @pie1=('10','20','30','40'); @pie=(\@pie0,\@pie1); print "<img src='./graph.pl?DATA=".\@pie.">\n"; print "</body></html>\n";
L'image appelle un cgi nommé graph.pl, le voici:
Et enfin la fonction &TX2::Graph::Graph:lotGraph() vient du module TX2::graph:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #!c:\perl\bin\perl.exe use CGI; use TX2::Graph::Graph; $cgi=new CGI; $tab=$cgi->param('DATA'); $tab0=$tab->[0]; $tab1=$tab->[1]; open(fic,'>./fic.txt'); print fic "DEBUG: ".@{$tab0}->[0]; close(fic); &TX2::Graph::Graph::PlotGraph($tab);
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 #!c:\perl\bin\perl package TX2::Graph::Graph; #%% Simple Pie chart | WWW | CGI, GD::Graph::pie #______________________________________________ use CGI qw/:standard/; use GD::Graph::pie; #use strict; # Call it like this : <img src = 'piechart.cgi?x=200&y=100'> sub PlotGraph() { my $donnee=$_[0]; my @DataText=$donnee->[0]; my @DataValue=$donnee->[1]; print "DONNEE ".$donnee->[0]; my $xs = param('x'); my $ys = param ('y'); do {$xs = 200; $ys = 100} unless $xs; print "Content-type: image/gif \n\n"; # For simple chart you can pass these in param string # for complex charts use data file my @data = (@DataText,@DataValue); my $graph = GD::Graph::pie->new($xs, $ys); $graph->set( title => 'Analysis', y_max_value => 100 ); my $gd = $graph->plot(\@data); binmode STDOUT; print $graph->plot(\@data)->gif(); } -1;
Or à l'affichage, j'ai une une croix symbolisant un gif non toruvé (rien de chargé) et l'erreur suivante ressortant d'apache:
ça vient du fait probablement que mes variables ne sont pas bien passées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [error] [client 127.0.0.1] Can't call method "gif" on an undefined value at c:/Perl/lib/TX2/Graph/Graph.pm line 38.\n
les valeurs qui me permettent d'afficher le graphes sont dans un tableau de 2 tableau @pie. Je passe ensuite la référence de ce tableau au cgi graph.pl puis appelle la fonction PlotGraph avec cette référence en paramètre.
Qu'est ce qui ne va pas ? Quelle erreur je fais pour ne pas retrouver mes tableaux ????
Merci beaucoup pour votre aide !!
Et bonne journée
Partager