MacPerl 変数の内容をホームページに出力する
|
|
目標
テキスト入力フィールドを持つ.htmlを作成して、ブラウザから文字を入力してもらって、結果を表示させる。
考え方
CGI Scriptでは、いちど、Webサーバーから、文字列を受け取る仕組みが必要になる。つまりキーボード-->ブラウザ=Webサーバー--->CGI Scriptとなる。このためには、htmlで、フォーム<form>を使用してキーボードから入力した文字をCGI Scriptに渡す。日本語も入力できるように、文字コード変換のライブラリjcode.plを使用する。jcode.plこはここからダウンロードできます。<---text形式で保存して名前を「jcode.pl」に変更しましょう。ブラウザへの出力は、すでに学んだ「変数の出力」でOK。入力した文字列を「indata.dat」というファイルに格納するので、あらかじめsimpleTEXTなどで、「indata.dat」という名前の空のファイルを作成しておくこと。
フォームのサンプル
まず、文字入力のためのフォームを作成する。
フォームの最初の<form>では以下のように記述します。
<form method="POST" action="input_form.acgi">
input_form.acgiのところは、これから作るCGI Scriptの名前と場所をパスを含めて指定しておきます。この例では、フォームの.htmlと同じ場所にCGI Scriptがあるのでパスは必要ありません。
文字入力のためのふたつのフィールド名をnamaeとmailにしてあります。
Perlのサンプル
解説
#ライブラリrequire 'cgi-lib.pl'; #デコード用サブルーチン &ReadParse(*form); &ReadParseは、入力フィールドのデータを、*formという連想配列に格納してくれるサブルーチンです。cgi-lib.plはここからダウンロードできます。 この例では、 $form{'namae'}に名前フィールドの値が入り、#ライブラリ require 'jcode.pl'; #文字コード変換 &jcode'convert(*form,'sjis'); 入力された文字列をシフトJISに変換します。 jcode.plというのはフリーのライブラリです。ここからダウンロードできます これらライブラリの場所はパス付きで指定します。この例ではCGI Scriptと同じ場所にあるという設定にしていますので、パスは記入していません。 |
|