◆フォームからのデータの受取
CGIを用いる理由はもちろんインタラクティブ(相互作用する)なHPを実現させるためです。CGIの起動方法については前に述べましたが、クライアントのブラウザからデータをサーバ上に送る方法としても、同様のことが言えます。大まかに言ってしまうと、フォームを使ってPOST方式(GETでも可)でデータを送るか、URLの後ろに?***=***&***=***のようにつけてGET方式で送るかの2通りになります。これらの2つの違いを説明します。また、インターネットエクスプローラー4.0以降・ネットスケープ2.0以降の場合<FORM>タグないでENCTYPEのパラメータを[multipart/formdata]と言うエンコード方式がサポートされています。これを使うとURLエンコードしないで、フォームの内容を送信・メールが出来たり、ファイルをサーバに送信したり出来るようになります。
◆POST
<FORM>タグでmethodパラメータにPOSTがセットされた場合に適応されます。POSTの時は標準入力経由でデータがCGIスクリプトに渡されます。この時環境変数CONTENT_LENGTHには、セットされたデータの長さが入っており、その長さ分だけが標準入力からデータを読み取ります。見た目で一番違うところは、ブラウザのURL入力欄の.cgiの後に何もつかないでデータをやり取りされて、データの破損もないって所でしょう!!
◆GET
methodパラメータでGETをセットするか、記述しなかった場合に適応されます。URLエンコードされたデータは環境変数QUERRY_STRINGにセットされますが、環境変数に格納できる大きさがサーバ上で限定されている場合があります。この場合大量のデータを送る際にデータの一部が失われる可能性がありますので、一般的にはPOSTを使った方が良いと言われてます。(但しPOSTが使えないプロバイダも中にはあります。)またGETでデータを送る際、送信データ内にスペースが含まれる場合インターネットエクスプローラーでは問題ないのですが、ネットスケープではスペース以降のデータが失われてしまうケースがあります。スペースはURLエンコードされると%20で表せますので、このようなデータを送受信させたい場合は一旦スペースを%20に変換してから送信させてください。
□初級編 プログラミングに入る前に
第四章 Perlでよく用いられる記号たち | |
・変数・配列 | プログラミングって?変数と配列って? |
・演算子・比較演算子 | 演算子の紹介と文字化け |
・コメント・簡単な命令文 | コメントの重要性と命令文の種類 |
第五章 データを受け渡してみよう | |
・POSTとGET<< | フォームからのデータ受取 |
・デコード方法 | デコードって?ライブラリの使用 |
・jcode.pl | jcode.plって何? |
・出力させてみよう | フォームを使ったデータを出力させてみる |
第六章 プログラムの中身って? | |
・繰り返し文 | for文、foreach文、while文の使い方 |
・条件分岐 | if文の使い方、パターンマッチについての説明 |
・サブルーチン | なにものだ?!利用方法を説明 |
・ファイルの入出力 | 外部ファイルの読み込み書き出しについて |
第七章 改造してみよう! | |
・文字や画像の差し替え | まずは簡単なところから |
・レイアウトの変更 | 駄目元でもいいからやってよう |
・やってはいけないこと、エチケット | 守ってね♪ |