CGI関連,  HTML

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