第6章 データを集計するCGIアプリケーションの設置


 
  1. 入力されたデータの件数と値の総和を求めるCGI

    611.準備
    今回は,以下の3種類のアンケートフォームを用意します。

    1. 学校までの交通費(片道)
    2. 1日のお昼代
    3. 通学時間(分)

    そこで,出席番号を3で割った余りで3つのグループをつくり,それぞれで1つずつアンケートを設置します。 即ち,次のように分けます。

    • 余りが0の人 → 1. 学校までの交通費(片道)
    • 余りが1の人 → 2. 1日のお昼代
    • 余りが2の人 → 3. 通学時間

    とします。また,アンケートは無記名(名前の入力フィールドは作らない)にします。
    そうすることでアンケートフォームで用意する入力フィールドは1つで済みます。


    612.用意するCGIプログラムの概要
    今回のCGIアプリケーションで必要になるファイルは,

    • アンケートフォーム(simpleEnquete1〜3.html)
    • 集計処理をするCGI(getTotal.cgi)
    • 入力データを保存するファイル(cgi_data.csv)

    の3つになります。

    そして,このCGIプログラム(getTotal.cgi)の要件は,

    1. ユーザから送られるデータを,ファイルとして(新しいデータを追加しながら)保存
    2. データの件数をカウント
    3. データの総和を算出

    の3つです。特に今回はデータをファイルとして保存します。
    そこで,注意しなければならないのがこのデータファイルの安全保持*1です。
    *1  クライアントから入力された情報(場合によっては個人情報)をサーバに保存することになりますから,このファイルの取り扱いは慎重になります。(いわゆるネット上で起こる個人情報流出の初歩的ミスの要因のひとつです。)具体的には,個人情報のはいったファイルをホームページの公開用フォルダに保存しない。→直接ファイル名をアドレスに入力すると表示されてしまう。


    613.CGIアプリケーションの設置
    ここから実際に,CGIアプリケーションを設置します。以下の手順で進みます。
    1. 《エンジン部分 getTotal.cgi の用意》
      • EMeditorを起動し,次のソースを入力(コピー&ペースト)します。

      • (1)、(2)の部分をそれぞれ適当な値に直します。

      • getTotal.cgiという名前で L:\cgi-bin に保存します。
        (※改行コードをUNIX用にLFに指定し直すことを忘れずに。)

    2. 《データの保存先ファイル cgi_data.csv の用意》
      H:ドライブ(=/home/ユーザー名/)に,次のように空の cgi_data.csv ファイルを作成しておきます。
      • 【マイコンピュータ】からH:ドライブを開きます。
      • 白い余白部分を,右クリックして【新規作成】→【テキスト ドキュメント】を選択します。
      • ファイル名を cgi_data.csv (警告メッセージがでても【はい】で進みます。)にします。
      • cgi_data.csv のアイコンを右クリックし,【プロパティ】→【セキュリティ】と進み,下のようにEveryoneの属性を読み取り+書き込みを許可にします。

    3. 《アンケート入力フォームの設置》
      本来ならばエディタ(EMeditor)を使って,前回のSection5までのようにHTML文でアンケートフォームを記述するのですが,今回は割愛して,すでに出席番号で決定したアンケートフォームを下からダウンロード(右クリックで【対象をファイルに保存】)しましょう。

      必ずカッコで指定されたファイル名に直してから L:\cgi-bin に保存します。

      1. 学校までの交通費(片道) (ファイル名:simpleEnquete1.html)
      2. 1日のお昼代 (ファイル名:simpleEnquete2.html)
      3. 通学時間(分) (ファイル名:simpleEnquete3.html)

      番外自分でアンケートフォームを作成してみる。
      作成方法は,前回のSection5の演習を参考にしつつ,次の項目に注意します。

      • Section5で作成したアンケートフォームを参考にする。

      • <form>タグのオプションaction="getTotal.cgi"の指定を忘れない。

      • データを入力するフィールドに名前(半角英数)を付けるのを忘れない。(名前はデータ内容をイメージするものなど)

      例えば,1.の学校までの交通費(片道)を選んだ場合は,こんな感じ。

  2. アンケートの実施

    では3つのグループ同士で,アンケートを実施し,結果を確認します。

    たとえば,ユーザー名がh0410999の人のアンケートページを開くには,  
    http://alice/~h0410999/cgi-bin/simpleEnquete.html
    のアドレスをインターネットエクスプローラで指定します。

    各ユーザー名の一覧をクラスごとに分けたものを下に用意してあります。
    クラス別名簿一覧表

  3. アンケート結果ファイルの編集

    H:ドライブに保存した cgi_data.csv ファイルの内容は,表計算ソフトExcelから編集できるので,入力されたデータを確認したり,変更することが可能です。

    注意!
    cgi_data.csv の内容を編集し,上書き保存した場合は属性が元に戻ってしまうので,上述の613-3.のように改めて属性を指定し直す必要があります。