#学习CGI,刚好有点内容要处理,拿来练手。
########################################################################
#cgi程序名:gd_post
#下面是POST方式
my (%FORM,$buffer,$pair,@pairs,@values,$name,$value);
read (STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
@pairs=split(/&/,$buffer);
foreach $pair(@pairs){
($name,$value)=split(/=/,$pair);
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
push @values,$value;
}
#下面是GET方式
#$QuerystringFromEnv=$ENV{QUERY_STRING};
#@NameAndValuelists=split /&/,$QuerystringFromEnv;
#foreach $NameAndValue(@NameAndValuelists)
#{
# ($Name,$Value)=split /=/,$NameAndValue;
# $Name=~tr/+//;
# $Value=~s/%([\dA-Fa-f][\dA-Fa-f])/pack("c",hex($1))/eg;
#push @values,$Value;
#}
my($whT,$whP,$lszT,$lszP,$lllT,$lllP,$dhT,$dhP,$yshT,$yshP,$zkT,$zkP,$fyT,$fyP,$lpT,$lpP)
= ($values[0],$values[1],$values[2],$values[3],$values[4],$values[5],$values[6],$values[7],
$values[8],$values[9],$values[10],$values[11],$values[12],$values[13],$values[14],$values[15]);
use GD::Graph3D;
use GD::Graph::bars3d;
print "Content-type: image/png;\n\n";
@data = (
["汪华","李苏中","李绿林","丁浩","严胜洪","郑凯","方阳", "鲁鹏"],
[ $whT, $lszT, $lllT, $dhT, $yshT, $zkT, $fyT, $lpT],
[ $whP, $lszP, $lllP, $dhP, $yshP, $zkP, $fyP, $lpP]
);
my $graph = GD::Graph::bars3d->new(800, 600);
$graph->set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",10);
$graph->set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",10);
$graph->set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",10);
$graph->set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",16);
$graph->set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",8);
$graph->set_legend("加域总量","今日加域数量");
$graph->set(
x_label => '-----加域成员-----',
y_label => '-----加域数量-----',
title => '**公司之办公PC加域状况图',
y_max_value => 120,
y_tick_number => 20,
y_label_skip => 2
) or die $graph->error;
my $gd = $graph->plot(\@data) or die $graph->error;
binmode STDOUT;
print $gd->png;
###############################################################################
#html程序名:gd_post-html
<html>
<head><title>网络组加域状况图</title></head>
<body>
<form METHOD=POST ACTION="绘图/gd_post.cgi">
<tr>
<td nowrap><b>*汪 华*</b><br>
完成总量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
今日完成数量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
</tr><hr>
<tr>
<td nowrap><b>*李苏中*</b><br>
完成总量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
今日完成数量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
</tr><hr>
<tr>
<td nowrap><b>*李绿林*</b><br>
完成总量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
今日完成数量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
</tr><hr>
<tr>
<td nowrap><b>*丁 浩*</b><br>
完成总量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
今日完成数量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
</tr><hr>
<tr>
<td nowrap><b>*严胜洪*</b><br>
完成总量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
今日完成数量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
</tr><hr>
<tr>
<td nowrap><b>*郑 凯*</b><br>
完成总量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
今日完成数量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
</tr><hr>
<tr>
<td nowrap><b>*方 阳*</b><br>
完成总量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
今日完成数量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
</tr><hr>
<tr>
<td nowrap><b>*鲁 鹏*</b><br>
完成总量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
今日完成数量:</td>
<td nowrap><input SIZE=1 MAXLENGTH=3 NAME="value"></td>
</tr><hr>
<input type="submit" value="提交">
<input type="reset" value="重置">
</form>
</html>
#注意,这里需要合适的GD版本,支持中文,版本号不记得了。
|