好的,所以如果有人可以帮助我,我将永远感激不尽。我有一个会议形式,所以用户要做的是选择3个上午课和3个下午课。这些都是复选框,代码示例如下:
<input type="checkbox" name="ece_classes" value="name 1">
<input type="checkbox" name="ece_classes" value="name 2">
<input type="checkbox" name="ece_classes" value="name 3">
现在这些都在1表格列中,而在其旁边的另一列中是优先列表:
<select name="Priority">
<option value="">
--Select--
</option>
<option value="1">
1
</option>
<option value="2">
2
</option>
<option value="3">
3
</option>
</select>
我的Perl脚本具有以下与复选框有关的内容:
$finalmailbody .= "Morning Presenters: $testhash{ece_classes},\n\n";
现在,当电子邮件与所有信息一起发送时,它不会列出所有选定的3个类,而只列出最后选择的一个。
perl脚本用于发送所有用户的个人信息和支付流程,但是这不是,但这是我不知道如何处理的脚本的唯一部分。
几乎总结我正在寻找的东西(因为上面的内容可能非常令人困惑)如下:
我有一份表格,上面列有15个上午课程和15个下午课程,然后是他们需要的个人信息。用户必须选择3个早晨和3个下午课程,同时还要选择课程的优先级(1-3)。提交表单后,将转至/cgi-bin/forms/eceform.pl。在这个perl脚本中(我没有创建,我只知道如何对单个字符串数据进行操作),它会获取所有这些数据,然后通过电子邮件将其发送到指定的电子邮件地址。我需要知道如何打印出电子邮件中选择的类,因为所有早上的类都使用相同的名称(ece_classes),所有下午的类都使用相同的名称(ece_classes_a)。在此之前我从未使用过perl,我发现这部分非常复杂。任何帮助将不胜感激。
如果您需要了解其他信息,请与我们联系。 谢谢,
编辑:如果有帮助,这是当前脚本的样子:
#!/usr/bin/perl
#Variables
$queryString;
$contentLength;
$number;
$sendmail="/usr/sbin/sendmail";
#Array Variable
@testarray;
#Hash Variable (Two-dimensional array that
#references its contents with keys and values
%testhash;
#################################################
##Read the envirionment variables ##
#################################################
$contentLength = $ENV{"CONTENT_LENGTH"};
$return = "/thankyou";
############################################
##Make sure that there is data to read and##
##if there is, read it ##
############################################
if($contentLength != NULL){
read(STDIN, $queryString, $contentLength);
}
###############################################################
##Split the information read in into an array in the ##
##form of a list which contains the keys and values ##
##as separate items. eg("key1","value1","key2","value2",etc.)##
###############################################################
@testarray = split(/&|=/,$queryString);
###############################################
##place the size of the array into a variable##
###############################################
$number = @testarray;
#############################################################
##Loop through each item in the array, convert the + to ##
##spaces, convert the HEX into the character it represents,##
#############################################################
for ($counter = 0; $counter <= $number; $counter++){
@testarray[$counter] =~ s/\+/ /g;
@testarray[$counter] =~ s/%([0-9A-Fa-f]{2})/pack("c",hex($1))/ge;
}
#####################################################
##Place the contents of the array @testarray into ##
##the hash variable %testhash. Each key in the hash##
##represents a value. ##
#####################################################
%testhash = @testarray;
######################
##Format the Message##
######################
$finalmailbody = "Conference Registration Form\n\n";
$finalmailbody .= "Morning Presenters: $testhash{ece_classes},\n\n";
$finalmailbody .= "Payment Type: $testhash{Payment_Type}\n\n";
$finalmailbody .= "Title: $testhash{Title}\n";
$finalmailbody .= "First Name: $testhash{First_Name}\n";
$finalmailbody .= "Last Name: $testhash{Last_Name}\n";
##############################################
##Open the email message and send the email.##
##############################################
open(MAILREGISTRATION, "|$sendmail -oi -t") || die "Can't open pipe to $sendmail: $!\n";
print MAILREGISTRATION "To: person\@website.ca\n";
print MAILREGISTRATION "From: $testhash{Email}\n";
print MAILREGISTRATION "Subject: Conference Submission\n\n";
#############################################
##Place the body of the email message here.##
#############################################
print MAILREGISTRATION "$finalmailbody";
close(MAILREGISTRATION) or die "Can't close pipe to $sendmail: $!\n";
#############################################
##Place the body of the email message here.##
#############################################
#print MAILCONFIRM "$finalmailbody";
#close(MAILCONFIRM) or die "Can't close pipe to $sendmail: $!\n";
########################
##Output to a web page##
########################
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print " <META HTTP-EQUIV=Refresh CONTENT=0;URL=$return>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "</BODY>\n";
print "</HTML>\n";
答案 0 :(得分:0)
该脚本是一个(旧的旧旧OLD)脚本,它读入已发布的数据并将其拆分为存储在%testhash中的键值对。类名是exe_classes键的值。