ビギナーズ CGI

 初歩から始める初心者向けPerl-CGI講座  

| トップページ | CGI設置 | CGI作成 | 作成事例 | 設置用語 | 作成用語 | 関数リファレンス | FAQ | お問合せ |
  
CGIの設置方法
フリーで配布されているCGIを設置する際の手順や注意事項などの説明です。

CGI作成の初歩
初めてCGIを作る方向けの手順を簡単な例で説明しています。

CGI作成ヒント集
こういう事をする時は、どのように行えばいいのか?など具体的な事例を紹介します。

CGIの設置に関する用語
CGIの作成に関する用語
CGIの設置や作成時に使われている用語や関連知識を掲載しています。

設置に関するFAQ
作成に関するFAQ
設置や作成をする際に起こりがちなトラブルの説明と、よくある質問とその回答を掲載しています。


 
 

CGI 作成の初歩
 HTMLページを表示してみる  文字列の置き換え
 複数行のHTMLページを表示  フォームから入力された値を表示
 ソース内にコメントを書く  ファイルに書き出す
 変数を使った簡単な計算  ファイルから読み込む
 条件式を使って分岐する  フォーム入力からファイルに書き出す
 文字列の扱い方を練習  サブルーチンを使用してみる
 ループを練習 (繰り返し処理)  現在の時刻を取得する
 配列の簡単な使い方  ファイルの簡単な操作をする
 配列の操作を行ってみる  不特定が書き込むファイルの排他処理
 文字列の検索と取出し  CGI から画像を表示する



15. フォーム入力からファイルの書き出しまでを行う


フォームからの送信で日本語のような 2バイト文字を送信した場合、
%を含む意味不明な文字列になって送信されるのをご存知でしょうか?
これはURLエンコードと言い、特殊記号や日本語などの文字列も正しく
送信する為に行われており、実際に表示やファイルに書き出す場合、
これらを元に戻してやる必要があります。


例えばフォームから受け取ったデータが $formin という変数に入っていた場合は、受け取った後
の処理に次のソースを加えて下さい。



URLエンコードされたデータで半角スペースは + 記号に、2バイト文字は %16進数値 といった
形にエンコードされていますので、%〜 の部分を hex関数で10進に、pack関数でそれらを1文字
のコードとして扱い、置き換えるなどの作業を全ての文字に対して行いますが、説明が難しい
ので、ここでは省かせて頂きます。
興味がある方は、それぞれの関数がどのような働きか調べた後、URLエンコードについて検索
してみると理解が深まると思います。







URLエンコードが出来た所で、フォームの受け取り〜書き込みを行ってみます。
今回は下のようなフォームで、お名前 と E-mail を受け取り、それを test.txt に
書き出す処理を行ってみます。


お名前 

E-mail 

お名前のフォーム欄の name は name
E-mailのフォーム欄の name は mail
送信メソッドは POST
送信先は test.cgi


下のソースでは既存ファイル test.txt を読み込んで配列に入れ、フォームから受け取ったデータ
をその配列に追記、保存する手順で行っています。
配列へは先頭行へ追記を行いますので、フォームから送信する度に、ファイルの最上部へ
新しいデータが記録されていきます。




ソース内に、どのような処理を行っているかをコメントとして書き込んでありますので、
それと比較しながら、どのような順序で何を行っているのかを把握しましょう。



次項ではサブルーチンを使って、処理をグループにする方法を説明します。



Beginner's CGI  - Copyright (C) 2003 aimix. All Rights Reserved -