Html 带有Perl CGI的复选框

Html 带有Perl CGI的复选框,html,perl,checkbox,cgi,Html,Perl,Checkbox,Cgi,对不起,如果我的问题太简单,我只是从CGI开始。。。 所以我有一堆同名的复选框。示例HTML: <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&

对不起,如果我的问题太简单,我只是从CGI开始。。。 所以我有一堆同名的复选框。示例HTML:

<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文档以获取更多信息。有一些简单的内置方法可以处理所有这些问题。

如果有多个同名表单元素,则需要将param()结果设置为数组。来源:

my@colors=param('color');
foreach my$color(@colors){
打印“您选择了$color.
\n”; }
谢谢您的帮助!这正是我需要的!谢谢你的链接…我会调查的。你从哪里得到的代码?无论你在什么书或网站上找到它,现在请停止阅读。它已经过时15年了,至少包含两个潜在问题。@Dave我找到了这段代码。你能告诉我有什么问题,正确的代码是什么吗?如果你把你的答复作为单独的答复,我将不胜感激。任何不使用CGI.pm的CGI教程都应该被忽略。这个模块已经包含在Perl中15年了,编写CGO程序要容易得多。我注意到的两个问题是1/它假设参数之间用“&”(“;”也是允许的)分隔;2/如果单个参数名有多个关联值,它将中断。很可能还有更多的问题。只需使用CGI.pm中的
param
函数即可。@DaveCross感谢您的建议!我现在正在用CGI.pm重写代码,看起来更整洁了。请停止使用肮脏的旧CGI.pm。请改用现代且干净的web引擎,如或。
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;
    }
my @colors = param('color');
foreach my $color (@colors) {
    print "You picked $color.<br>\n";
}
use strict; use warnings;
use CGI;

my $cgi = CGI->new;
my @opt = $cgi->param('Loc_opt');