前へ << C 言語で CGI プログラムを作ろう |
標準入力も標準出力も知っているし、 環境変数が何かも知ってる、プログラムも書いたことがあるので、 CGI について てっとり早く教えろ、という方向けの説明です。そういう人は自分で調べてしまうので、説明する必要もないような 気がしますが。WWW サーバにアクセスしたとき、ファイルの内容がそのまま出力されるのか、 CGI プログラムとして実行されるのかは WWW サーバの設定によります。 一般的に拡張子を .cgi としておけばいいでしょう。CGI プログラムは、実行されると標準出力に出力します。 その出力がそのままブラウザに渡されます。 ただし、気を付けるのはまずヘッダを出力し、その後空行が必要なことです。 perl なら
print "Content-type: text/html\n"; print "Content-length: 100\n"; print "\n"; print "... 内容 ...";という流れになります。引数の取得は、GET の場合は環境変数 QUERY_STRING に代入されています。 POST の場合は標準入力から渡されます。 GET か POST かは 環境変数 REQUEST_METHOD でわかります。 また、POST の場合は環境変数 CONTENT_LENGTH にデータ長さが入っていますが、 EOF まで STDIN から読み込んでも構わないでしょう。
GET でも POST でも、データは URL エンコードされています。 正規表現 [-a-zA-Z0-9_\*] 以外の文字は全て %xx という形 (xx は16進数表記) になって送られてきます。CGI プログラムでは、 これを元の形に戻さないといけません。
前へ << C 言語で CGI プログラムを作ろう |