(11)インターラクティブなページ・デザイン(CGIの導入)

インターラクティブとは

インタタクティブ(Interactive)という単語には「双方向性、対話式、相互に作用する」という意味があります。

一昔前のホームページはホームページの訪問者に作り手の用意したコンテンツ(内容)を一方的に見せるだけのものが主流でした。

しかし昨今では訪問者にホームページの感想を求めたり、アンケート形式で市場の状況を調査したり、販売サイトで客先から注文を取ったりといった双方向的なホームページが増えてきました。また、日毎や頁毎のアクセス集計等を取って訪問者の分析をすることもウェブ・サイト運営の為に必要となってきます。このような機能を持ったホームページをインタラクティブなホームページと言い、将来の様々な可能性を秘めています。


インタラクティブを可能にする技術の概要

単純なホームページはサーバーの中に蓄えられたHTMLファイルを閲覧者のパソコンの中にダウンロードして来て、インターネット・エキスプローラなどのブラウザーがHTMLの文法に従って単に表示するだけでした。

しかし、上に述べてきたようなインタラクティブな機能は、閲覧者の入力や操作がきっかけとなって、その指令がプロバイダーなどのサーバーのコンピュータに伝えられ、その中に用意されている特殊なプログラムが働き、要求に応える処理がなされ、その結果が元の閲覧者の元に送られるという仕組みになっています。

従って、このインタラクティブな機能を実現させるためには、上に述べたサーバーの中で働くプログラムを開発する必要があります。単純なホームページが素人でも書くことが出来るHTMLファイルを作成すれば事足りるのに反して、事情は簡単ではありません。その道の専門家に開発をゆだねなければなりません。 このプログラムはサーバー・サイド・プログラムと言って開発するにはCGI,SSI,ASP、PHP、Flashなど色々なプログラム言語が使われています。

それでは、その道の専門家でない一般のウェブ・サイト開発者はどうしたらこのインタラクティブな機能を実現させることが出来るのでしょうか?

勿論、企業などのウェブ・サイトはこのようなサーバ・サイドのプログラムを専門家に有料で開発を依頼して作成するでしょう。しかし、それ程資金的に余裕のない個人のウェブ・サイト開発者はどうするのでしょうか?

世の中は巧くできているもので、インターネット上には無料でダウンロード出来るユーティリティー的なCGIプログラムが探せば利用できるのです。筆者は数あるそのような出来合いのフリー・ソフトの中でも定評のあるサイトのCGIプログラムを利用しています。

CGI素材を提供している定評のあるサイトには次のようなものがあります:

(1) KENT WEB ・・・・・・・・・・・  http://www.kent-web.com/
(2) ネット・サーフレスキュー・・・・・・・・   http://www.rescue.ne.jp/

上の2つのサイトは非常に有名なのでURLを入力しなくても、その名前で簡単に検索出来ます。

  既製のCGIを導入する手順

   (1) CGI素材を提供するサイトにアクセスし、素材の選択をする

ユーティリティー素材集には:
掲示板、チャット、アクセス・カウント、パスワード制限、データー収集加工等があり、
その各々のカテゴリには単純で導入が易しいものから複雑で高機能のものが用意されているので、説明とサンプルを良く読んで十分検討して、自分の欲しいCGI素材を選択する。

   (2) CGI素材をダウン・ロードし、解凍する

素材サイトで指定している手順に従って選択したCGI素材をダウンロードする。
殆どの場合、CGI素材は圧縮ファイルになっているので、先ずそのファイルをテキスト・ファイルに解凍し、別々のファイルに展開しなければなりません。 
圧縮・解凍プログラムは矢張り無料でインターネットからダウンロード出来る「+Lahca」等がお勧めです。

解凍した複数のファイルは通常サイトのトップ・レベル(index.htmlと同じレベル)に「cgi-bin」のようなフォルダを作って、その中に保存する。

   (3) CGI素材を自分用に設定する

次はKENT WEBからダウンロードした「DayCounter−EX」というアクセス・カウンターCGIのファイル一覧です。このようなファイル一覧表や各々のファイルの機能及び設定の仕方は一つのファイルに説明があります。

public_html / index.html ... (ここにカウンタを設置)
      |
      +-- count / dayx.cgi    [705]
            |     dayxmgr.cgi [705]
            |     init.cgi    [604]
            |
            +-- lib / gifcat.pl [604]
            |
            +-- data / dayx.dat [606]
            |          day.dat  [606]
            |          mon.dat  [606]
            |
            +-- gif1 / 0.gif .. 9.gif
            |
            +-- gif2 / 0.gif .. 9.gif
            |
            +-- img / blue.gif
                      red.gif
自分用に設定する手順は:

A.「cgi」の拡張子が付いているファイルをテキスト・エディターで開き、
  1行めの「:#!/usr/local/bin/perl 」をサーバーの指定するパスに変更する。
  これは使用するサーバーによって異なり、サーバーの仕様書に「perl」というCGIの
  プログラムの場所は「:#!/usr/bin/perl 」と指定されていれば、そのように
  訂正する。 若し、この訂正を行わないと、折角用意したCGIプログラムもその
  サーバーでは作動しません。

B.「init.cgi」をテキスト・エディターで開き、
  変更の必要が求められて箇所を、自分の環境に合わせて変更する。
  殆どの場合、「init.cgi」が自分用の設定をするファイルになっていますが、
  場合によってはそれが「set.cgi」であったり、「xxxmgr.cgi」であることもあります。
  変更の箇所は、例えば、cgiからの戻り場所とか、IPアドレスをチェックし連続カウント
  を防止するかどうかの選択で、0か1を設定するといったような例です。
  掲示板などで自分のサイトの背景色と導入する掲示板の背景色を同じにしたいなら
  ここで指定して変更しなさいという説明も出ています。

   (4)  設定済のCGIコードのアップロード

ホームページビルダーのFTPツールを利用して、ローカル・サイトと同じレベルにアップロードする。

    (5)  CGIの各ファイルのサーバーの中でのアクセス権(permission パーミッション)を設定する

アクセス権は:
ファイル名 パーミッション 転送モード
一般サーバ suEXECサーバ
CGIWrapサーバ
dayx.cgi
dayxmgr.cgi
755 or 705 701 or 700 アスキー
dayx.dat
day.dat
mon.dat
666 or 606 600 アスキー
init.cgi
gifcat.pl
644 or 604 600 アスキー
*.gif - - バイナリ

のように決められているので、自分の使用するサーバーが一般サーバーかそうでないサーバーかを調べておく必要があります。サーバーの種類が異なると、パーミッションも異なるからです。

アクセス権(パーミッション)設定の手順は:

A.FTPツールでサーバーに接続

B.アクセス権を設定するCGIファイルを右クリック → プルダウン・メニュー →
   から「アクセス権変更」を選択する順序でアクセス権のビットを設定する。

「アクセス権変更」をクリックすると、下のようなダイアログが表示されるので;



例えば、パーミッションが「701」であれば、上の図のようにチェックを入れてかっら、
「変更」ボタンをクリックする。 変更がない場合は、「変更」ボタンをクリックする必要はない。

  (6)  該当HTML頁に必要なコードを記述する

例えば、上の例のDayCounterの場合は:

アクセス・カウントを表示する場所に、
  • 総カウント数  :dayx.cgi?gif
  • 昨日のカウント数:dayx.cgi?yes
  • 本日のカウント数:dayx.cgi?today
のようなコードを埋め込む。

   (7)  ブラウザーを使ってテストを行う

勿論、必要なコードを埋め込んだ頁はサーバーにアップロードしてからテストを行う。