plot(\@data)->png;
-undef $MyGraph;
-binmode(STDOUT);
-open IMG,"|pngtopnm|ppmtogif"; # convert into a gif image
-print IMG $BinaryData; # output image
-$|=1; # be sure to flush before closing
-close IMG;
+=head1 DESCRIPTION
+graph.png is a cgi-bin script which produces plots based on input data.
+The query string is expected to be as follows (without whitespace):
+escape(Plot title) & escape(X label)& escape(Y label) & Maximum Y value &
+Number of bars & $data1 & $data2
+$data1 and $data2 are expected to be comma seperated lists of numbers.
+escape( value ) means the values must be run through lonnet::escape.
+=cut
+use strict;
+use lib '/home/httpd/lib/perl';
+use GD::Graph::bars;
+use GD::Graph::lines;
+use GD::Graph::colour;
+use GD::Graph::Data;
+use LONCAPA::loncgi();
+sub unescape {
+ my $str=shift;
+ $str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
+ return $str;
+}
+
+sub error {
+ my ($error) = @_;
+ my $Str = <<"END";
+Content-type: text/html
+
+
+Bad Graph
+
+
+There was an error producing the graph you requested.
+
+$error
+
+
+
+END
+ return $Str;
+}
+my $id = $ENV{'QUERY_STRING'};
+#
+# &get_env($name,$default)
+sub get_env {
+ my $key = 'cgi.'.$id.'.'.(shift());
+ return shift if (! exists($ENV{$key}));
+ return $ENV{$key};
+}
+
+if (! &LONCAPA::loncgi::check_cookie_and_load_env()) {
+ print <
+Bad Cookie
+
+Your cookie information is incorrect.
+
+