ここでは、テキスト入力以外から入力されたデータの扱いかたについて説明します。
なお、データを受け取る場合の注意点は、Perlで書いたものと同じです。
最初に、リンクによって、データを送る方法を説明します。 まず、CGIを呼び出すページのHTMLで、次のようにリンクにデータを書きます。
<A HREF="ex2.cgi?Hello">CGIの例2</A>
これで「ex2.cgi」という名前のCGIファイルに、「Hello」というデータが送られます。
基本は「CGIファイル名?データ」と、? の後にデータを加えた形になります。
注意:正確には、リンクに書ける文字には制限があるので、例えば、
空白や記号が入った文や、日本語をそのまま送ることはできません。
そして、データを受け取るCGIプログラムは次のようになります。
1: #! /usr/local/bin/python 2: 3: Data = ENV['QUERY_STRING'] 4: 5: print "Content-type: text/html\n\n" 6: print Data
Rubyの場合は、基本的にPerlと同じです。
ブラウザから送られるデータは、「QUERY_STRING」という「環境変数」に入ってます。
Rubyでは、「ENVという連想配列(ハッシュと呼ばれる)の、'QUERY_STRING'というキーで参照される要素」ということになります。
具体的には、「ENV['QUERY_STRING']」と書くことで、その値が得られます。
あとは、それを表示しているだけです。
注意:この例では、データをそのまま表示してますが、こういうのは危険で全く悪い例です。