对不起,如果我的问题太简单了,我只是开始与CGI ... 所以我有一堆复选框具有相同的名称。示例HTML:复选框与Perl CGI
<form action="/cgi-bin/checkbox.cgi" method="POST">
<input name="Loc_opt" value="Loc_1" type="checkbox">Option 1<br>
<input name="Loc_opt" value="Loc_2" type="checkbox">Option 2<br>
<input name="Loc_opt" value="Loc_3" type="checkbox">Option 3<br>
<input type="submit" value="Submit">
</form>
我需要找出哪些使用Perl CGI检查。我有checkbox.cgi中的以下内容:
print "Content-type:text/html\r\n\r\n";
local ($buffer, @pairs, $pair, $name, $value, %FORM);
# Read in text
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else {
$buffer = $ENV{'QUERY_STRING'};
}
# Split information into name/value pairs
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
我应该怎么做才能打印所选复选框的值?
你从哪里得到这个代码吗?无论您发现哪本书或网站,请立即停止阅读。它大约过了15年,至少包含两个潜在的问题。 – 2012-04-27 08:47:26
@Dave我发现这个代码[在这里](http://www.tutorialspoint.com/perl/perl_cgi.htm)。你能不能让我知道什么是问题,什么是正确的代码?如果您将答复作为单独答案,我将不胜感激。 – user828647 2012-04-28 15:24:42
是的。任何不使用CGI.pm的CGI教程都应该被忽略。这个模块已经被Perl包含了15年,并且使得编写CGO程序变得容易得多。我注意到的两个问题是1 /它假定参数被'&' (';'分隔也是允许的)并且2 /如果单个参数名称具有多个关联值,则中断。可能会有更多的问题。只需使用CGI.pm中的'param'函数即可。 – 2012-04-29 19:25:46