プロが教えるわが家の防犯対策術!

Perlについてご教示お願い致します

下記のコードはフォーム入力し送信を押すとメール送信されます。
[mailform.pl]
print qq(Content-type: text/html; charset=Shift_JIS\n\n);
print <<END;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>メールフォーム</title>
</head>
<body>
<h1 class="title">メールフォーム</h1>
<form method="post" action="mail.pl">
<input type="hidden" name="a" value="exec">
件名(Subject) :<br />
<input type="text" name="subject" size="80" value=""><br />
宛先(To) :<br />
<input type="text" name="to" size="80" value=""><br />
差出人(From) :<br />
<input type="text" name="from" size="80" value=""><br />
本文(Body) :<br />
<textarea name="body" rows="10" cols="65"></textarea><br />
<p>
<input type="submit" value="送信">
</p>
</form>
</body>
</html>
END

そこで、メールを送信すると下記のコードを実行させたいです。
[endmail.pl]
#!/usr/bin/perl
print qq(Content-type: text/html; charset=Shift_JIS\n\n);
print <<END;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>メールフォーム</title>
</head>
<body>
<table style="width:40%;border:2px solid #f63">
<tr><th style="padding:5px;background:#fc1">送信完了</th></tr>
<tr>
<td style="padding:20px">

<center>
<a href="http://aaaaaa.jp/index.html">トップページへ戻る</a>
</center>
</body>
</html>
END

どのようにすればいいのでしょうか・・・?

A 回答 (1件)

まず、mailform.plはこの内容だけであればPerlのプログラムである必要性はなく、静的HTMLファイルで十分です。


Webブラウザに表示されている画面をsubmitしたら画面で入力された内容を持ってmail.plを呼び出せばよいだけなので。

で。Perlでの実装とは関係なく、一般的にサーバ側のCGIプログラムはWebブラウザに表示されているある画面でのsubmitで呼び出され、その画面で入力した各種変数を受け取って処理し、次の画面のHTMLを送出して処理を終えます。
もちろんこの一連の処理を部品化して分けてもよいです。
この基本的な仕組みを前提に考えられると、何処がオリジナルで作らねばならないところで、何処が出来合いの(orシステムが提供する)部品を使えば済むところで、、、というのがまとまるかと思います。

参考まで。
    • good
    • 0
この回答へのお礼

Perlから受け取る時は
下記のようなCGI.pmを利用してデータの受け渡しで

my $q = new CGI;
my $from = $q->param('from');

これをHTMLで使用できるようにするということですか??

お礼日時:2016/11/22 16:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!