Perl CGIでフォームを作成する
Perl CGIでフォームを作成するには、主にHTMLファイルとPerlスクリプトの2つのファイルを用意し、連携させる必要があります。
現代のWeb開発ではより高度なフレームワークが主流ですが、Perl CGIはWebの基本的な仕組みを理解する上で非常に有用です。
目次
1. フォームの構成要素
2. フォーム作成のステップ
3. 参考資料
まとめ
Perl CGIでフォームを作成するには、主にHTMLファイルとPerlスクリプトの2つのファイルを用意し、連携させる必要があります。
現代のWeb開発ではより高度なフレームワークが主流ですが、Perl CGIはWebの基本的な仕組みを理解する上で非常に有用です。
1. フォームの構成要素
HTMLファイル(form.html)
ユーザーがデータを入力するフォームを作成します
コード例
html
<!DOCTYPE html>
<html lang=”ja”>
<head>
<meta charset=”UTF-8″>
<title>サンプルフォーム</title>
</head>
<body>
<h1>お問い合わせフォーム</h1>
<form action=”sample.cgi” method=”post”>
<label for=”name”>お名前:</label>
<input type=”text” id=”name” name=”name”><br><br>
<label for=”email”>メールアドレス:</label>
<input type=”email” id=”email” name=”email”><br><br>
<label for=”message”>お問い合わせ内容:</label>
<textarea id=”message” name=”message”></textarea><br><br>
<input type=”submit” value=”送信”>
</form>
</body>
</html>
コードは注意してご使用ください。
Perlスクリプト(sample.cgi)
フォームから送信されたデータを受け取り、処理します。
コード例
perl
#!/usr/bin/perl
# 上記はPerlのパスを環境に合わせて変更してください。
use strict;
use warnings;
use CGI;
my $q = CGI->new;
# HTTPヘッダーを出力
print $q->header(‘text/html; charset=UTF-8’);
# HTMLコンテンツの出力
print <<‘END_HTML’;
<!DOCTYPE html>
<html lang=”ja”>
<head>
<meta charset=”UTF-8″>
<title>フォーム結果</title>
</head>
<body>
<h1>送信結果</h1>
END_HTML
# フォームデータの取得と表示
my $name = $q->param(‘name’);
my $email = $q->param(‘email’);
my $message = $q->param(‘message’);
print “<p>お名前: ” . $q->escapeHTML($name) . “</p>”;
print “<p>メールアドレス: ” . $q->escapeHTML($email) . “</p>”;
print “<p>お問い合わせ内容: ” . $q->escapeHTML($message) . “</p>”;
print <<‘END_HTML’;
</body>
</html>
END_HTML
コードは注意してご使用ください。
2. フォーム作成のステップ
HTMLファイルを作成する
<form>タグのaction属性に、データを受け取るPerlスクリプトのファイル名(例:sample.cgi)を指定します。
method属性はpostを指定するのが一般的です。getはURLにデータが含まれるため、セキュリティ上のリスクがあります。
<input>や<textarea>などのフォーム部品にname属性を設定し、Perlスクリプトでデータを取得する際のキーとします。
Perlスクリプトを作成する
シェバン行: スクリプトの先頭に#!から始まるPerlの実行パスを記述します。
モジュールの利用: CGIモジュールを利用すると、フォームデータの解析やHTML出力が容易になります。
CGI->newでCGIオブジェクトを作成します。
$q->param(‘name’)のようにして、HTMLで指定したname属性のデータを取得します。
ヘッダーの出力: $q->header()を使って、HTMLを出力するためのヘッダー情報をクライアントに送ります。
データの処理: 取得したデータをプログラムで処理します。例では、取得した値をそのまま表示しています。
出力: print関数でHTMLタグを生成し、ブラウザに返します。セキュリティのため、ユーザー入力は$q->escapeHTML()などでエスケープ処理をします。
サーバーにアップロードする
作成したHTMLファイルとPerlスクリプトを、Webサーバーの適切なディレクトリにアップロードします。
Perlスクリプト(.cgiファイル)は、サーバー上で実行可能にする必要があります。FTPクライアントなどを使ってパーミッションを755に設定してください。
参考資料
とほほのWWW入門 – CGI: Perl CGIの基本的な使い方を解説しています。とほほのWWW入門 CGI
perldoc.jp – CGI: Perlの公式ドキュメント(日本語)で、CGIモジュールの詳細を確認できます。perldoc.jp – CGI
まとめ
試しにAiで作ってみました。
俺が作るよりうまい。
Last Updated on 2025年11月29日8:54 am by cgishop


