買い物かご 掲示板 メール DB 利用規定 FAQ サポートBBS


次(配列)
前(デコード)
必要なツール
最低限必要な知識
Make CGI Top
Basic

Home



送信データの表示 --最低限必要な知識--


データを表示する

前回、フォームから送ったデータを、デコードしてCGIスクリプトで読み出せるようにするための、準備を整えました。今回は、デコードしたデータを表示する方法を学びましょう。

始めに、「cgi-bin」フォルダ内に適当な名前のフォルダを作成します。ここでは「test2」という名前のフォルダを作成しました。

次にフォームを作成しましょう。

<form method="POST" action=test2.cgi>
<input type=text name=name>
<input type=text name=age size=4>
<input type=text name=address>
<input type=submit value=送信>
<input type=reset value=中止>
</form>

ブラウザでは、以下のように表示されますね。テーブルにいれたり、インデントをつけたりして、きれいに整形してもかまいません。上の通りに半角英数で書いてください。別の単語にしたときは、以下の文章を自分の入れた文字に読み替えてください。

氏名
年令
住所


作成したフォームに名前を付けて保存します。ここでは仮に「fomr.html」としましょう。保存先は先ほど作成した「cgi-bin/test2」の中です。

今度はCGIスクリプトを作成します。「Perl Editor」を起動して、「定型文」メニューの「初期設定」と「HTML出力」を使って、HTMLファイルを生成します。言うまでもありませんが、CGIスクリプトのファイル名は、

<form method="POST" action=test2.cgi>

で指定したファイル名です。

完成したら、名前を付けて保存します。ここでは仮に「test2.cgi」とします。保存先はform.htmlと同じく、「cgi-bin/test2」の中です。jcode.plへのパスの設定も忘れずに。


今回は「ヒアドキュメント」を使います。「test2.cgi」の、

print "<hr width=40\%><br>\n";

print "</body></html>\n";

の間に、

print <<"EOF";

と入力します。ヒアドキュメントを終了するのを忘れないように、何行か改行して

EOF

と入力します。EOFは必ず左端に書くこと。スペースを空けたりすると動作しません。

print <<"EOF";

この間にHTMLタグを書きます。

EOF


まず、何も考えずに、次のコードを書いてみましょう。(inputタグのname属性を変えた人は、自分の記述した文字に置き換えてください)

名前:$FORM{'name'}<br>
年令:$FORM{'age'}才<br>
住所:$FORM{'address'}<br>

:は全角コロンです。書き終えたら、上書き保存しましょう。


では、さっそくスクリプトが動くかどうか試してみます。

http://127.0.0.1/cgi-bin/test2/form.html

を呼び出します。
フォームが表示されたら、適当な文字を入力して「送信」してみましょう。

名前:山田太郎
年令:25才
住所:東京都

のように、あなたの入力した通りの文字が表示されれば成功です。


$FORM{'name'}
$FORM{'age'}
$FORM{'address'}

これは、連想配列と呼ばれる、Perlの機能を使っています。連想配列に付いては、次項で説明しています。

正しくデコード処理されていれば、

<input type=xxx name=yyy value=zzz>(今回はvalueは指定しませんでした)

のname=yyyの「yyy」が$FORM{'yyy'}となります。

この仕組みさえ覚えてしまえば、難しく考えなくても、送られてきたデータをCGIスクリプト上で表示させることは簡単にできるようになります。


最後に、送信されたデータをテーブルなどで、きれいに整形してみてください。完成したら、スクリプトを上書き保存します。


うまくできましたか?サーバーエラーで動作しない場合は、じっくりとスクリプトを読み返してみましょう。「"」「\」「;」が抜けていたり、ヒアドキュメントを閉じ忘れていたり、ヒアドキュメントの最後の「EOF」が左端になかったり、EOFの行に余分なスペースやタブが入っていたりしていませんか?

jcode.plへのパスが正しいかどうかも確かめましょう。



Web寺子屋 OGIPOGI E-mail:info@web-terakoya.net
Copyright© 2000-2001 OGIPOGI All Rights Reserved.