$3 ブラウザからのデータの取得

3-1 リンクによるデータ取得

ここでは、テキスト入力以外から入力されたデータの扱いかたについて説明します。
なお、データを受け取る場合の注意点は、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']」と書くことで、その値が得られます。 あとは、それを表示しているだけです。
注意:この例では、データをそのまま表示してますが、こういうのは危険で全く悪い例です。


Next: 3-2 フォームからのデータ取得 その1

Previous: 2-3 乱数を使った表示

Contents


Foundation of CGI Page

春風はるか haruka@harukaze.net