私のサイトで使用しているフォームを処理するために formmail.pl を使用しています。名前、電子メール、電話番号、テキスト領域のテキストなど、スクリプトに送信されるフィールドがいくつかあります。
現状では、送信が成功すると、電話番号とテキストエリアのデータは正しく印刷されますが、入力された名前と電子メールは印刷されません。電子メールでは、「from」ヘッダーで名前と電子メールを送信し、成功ページと同様に、電話とテキストエリアのデータのみが電子メール本文に表示されます。
どちらの場合もすべてのデータを表示したいのですが、これを処理するコードのセクションが見つからないようです。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";
}
さて、少し長くなります。そのようなものは主に成功ページ用であり、メール側とはあまり関係がありませんが、誰かがそこで必要なものを見つけることができれば、メールセクションにも適用できます.
さらに情報が必要な場合はお知らせください
前もって感謝します