next up previous index
Next: 16.4 CGIプログラムTips Up: 16. フォーム Previous: 16.2 入力されたデータの解析


16.3 ISINDEXの解析

isindexタグで入力フォームが現れることは、4.1 で説明しましたが、実際にこれを使う方法を説明します。

isindexタグの入力フォームに入力したテキストは、get形式で自分自身のURIに送られます。つまり、isindex.htmlというファイルの中の入力フォームでtestと入力すると、isindex.html?testという形で自分自身が呼び出されます。

NCSAのWebサーバーに付属しているサンプルの1つ、finger(ユーザー情報を表示するCGIプログラム)は次のようになっています。このサンプルでは、shスクリプトを使っています。


 1:#!/bin/sh
 2:
 3:FINGER=/usr/bin/finger
 4:
 5:echo Content-type: text/html
 6:echo
 7:
 8:if [ -x $FINGER ]; then
 9:      if [ $# = 0 ]; then
10:             cat << EOM
11:<TITLE>Finger Gateway</TITLE>
12:<H1>Finger Gateway</H1>
13:
14:<ISINDEX>
15:
16:This is a gateway to "finger". Type a user@host combination in your browser's
17:search dialog.<P>
18:EOM
19:     else
20:             echo \
21:             $FINGER "$*"
22:     fi
23:else
24:     echo Cannot find finger on this system.
25:fi

9行目でURI中に引数があるか判定しています。一番最初に表示した時点などのように引数がないときには、14行目によって入力フォームが表示されます。入力フォームに入力すると、再び自分自身を呼び出し、引き渡されたURIの引数を使って、20行目以降の処理に移ります。21行目の$*が引数に置き換えられます。



Kenshi Muto
平成11年9月19日