我正在使用 formmail.pl 来处理我在我的网站上使用的表单。有几个字段被发送到脚本,包括姓名、电子邮件、电话和文本区域中的一些文本。
就目前而言,成功提交会正确打印电话和文本区域数据,但不会打印输入的姓名和电子邮件。在电子邮件中,它在“发件人”标题中发送名称和电子邮件,并且与成功页面一样,仅显示电话和文本区域数据显示在电子邮件正文中。
我想在这两种情况下显示所有数据,但是我似乎找不到处理这个的代码部分。除了超过 3000 行代码之外,我会发布 formmail.pl 脚本,所以我只会发布我认为负责的地方,希望有人能指出我正确的方向。我对 Perl 相当陌生,阅读和理解这种大小的脚本有点压倒性。
sub success_page {
my ($self, $date) = @_;
if ($self->{FormConfig}{'redirect'}) {
print $self->cgi_object->redirect( $self->{FormConfig}{'redirect'} );
}
elsif ( $self->{CFG}{'no_content'}) {
print $self->cgi_object->header(Status => 204);
}
else {
$self->output_cgi_html_header;
$self->success_page_html_preamble($date);
$self->success_page_fields;
$self->success_page_footer;
}
}
sub success_page_html_preamble {
my ($self, $date) = @_;
my $title = $self->escape_html( $self->{FormConfig}{'title'} || 'Success' );
my $torecipient = 'to ' . $self->escape_html($self->{FormConfig}{'recipient'});
$torecipient = '' if $self->{Hide_Recipient};
my $attr = $self->body_attributes;
print <<END;
<head>
<title>$title</title>
END
$self->output_style_element;
print <<END;
<link type="text/css" href="css/stylesheet.css" rel="stylesheet" /></script>
</head>
<body>
<p>Below is what you submitted $torecipient on $date</p>
END
}
sub success_page_fields {
my ($self) = @_;
foreach my $f (@{ $self->{Field_Order} }) {
my $val = (defined $self->{Form}{$f} ? $self->{Form}{$f} : '');
$self->success_page_field( $self->escape_html($f), $self->escape_html($val) );
}
}
sub success_page_field {
my ($self, $name, $value) = @_;
print "<p><b>$name:</b> $value</p>\n";
}
好的,这有点长。这些东西主要用于成功页面,与电子邮件方面的关系不大,但也许如果有人能在那里找到我需要的东西,我也可以将它应用到电子邮件部分。
如果需要任何进一步的信息,请告诉我
提前致谢