这段时间来,我在看别人写的CGI程序都发现他们的程序为了得到表单发送的内容时都使用了很长的语句来得到发送的内容。
例如:
##################以下语句用来读取输入的变量###############
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else {
$buffer = $ENV{'QUERY_STRING'};
}
@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;
$value =~ s/<!--(.|n)*-->//g;
$value =~ s/|//g;
$value =~ s/>/>/g;
$value =~ s/</</g;
$FORM{$name} = $value;
}
#################以下语句用来取出输入变量###############
$list = $FORM{'list'};
$no = $FORM{'no'};
$menu = $FORM{'menu'};
$page =$FORM{'page'};
$kind = $FORM{'kind'};
$down = $FORM{'down'};
$search = $FORM{'search'};
其实你完全不用如此累人写这么多代码,你完全可以轻松地运用param函数来得到表单输入的内容,请看下面的例文。
################例程##########
#!usr/bin/perl
use CGI qw(:all);
$title = param('title');
$text = param('text');
print $title;
print $text;
################例程完毕##########
你可以用test.pl?title=参数值&test=参数值这样的连接来试验,你也可以用表单来试验。。
最后记住,在你确定使用param函数的时候请在perl的路径下添加一句use CGI qw(:all)。