CGIへのデータ送信となると、HTMLのフォームを利用するのが一般的ですが、
普通のリンクとして使うこともできます。
具体的に、データも送信するリンクの書き方は、
<A HREF="ex2.cgi?Hello">CGIの例2</A>
となります。これで「ex2.cgi」という名前のCGIファイルに、「Hello」というデータが送られます。
基本は「CGIファイル名?データ」と、? の後にデータを加えた形になります。
注意:実際には、リンクに書ける文字には制限があるので、例えば、
空白や記号が入った文や、日本語をそのまま送ることはできません。
そして、データを受け取るCGIプログラムは次のようになります。
#! /usr/bin/perl
print "Content-type: text/html\n\n";
$Data = $ENV{'QUERY_STRING'};
print "$Data";
この4行目の「$ENV{'QUERY_STRING'}」という変数にデータが入ってます。
正確には、上のリンクで「?」の後に書かれた文字列がそのまま入ってます。
あとは、この変数をなんらか処理すれば良いわけです。
注意:この例では、データをそのまま表示してますが、こういうのは危険で全く悪い例です。
これだけでは、データの変更も出来ないし意味がなさそうですが、そうでもありません。
例えば、商品カタログリストから、各商品を表示するようなCGIの場合、
ひとつのCGIに商品コードだけをデータとして送れば十分ですから、プログラムが簡単にできます。
こんな感じです(プログラムの内容は省略します)。
数十個くらいまでなら個別にページを作って対応できるでしょうけど、 数百個、数千個とかになったら、データから検索して表示したほうが管理しやすいと思います。
次のような簡単なゲームも作れます(プログラム内容は省略します)。
数を選ぶゲーム