STEP 2 アクセスカウンターを動かしてみよう!


アクセスカウンターを動かしてみよう!

なには、ともあれ、動かしてみる

はい、それらしく出来てきました。

ssi.cgi の中身

ctr-ex1.htm の中身

ctr-ex1.pl の中身 パーミッションは 700

ctr-ex1.pl は cgi ではなく、 ssi.cgi から起動されるプログラムとなるので、 拡張子は .cgi である必要はありません。 パーミッションを 700 にして実行を許可します。

ctr-ex1.dat の中身


アクセスカウンターの仕掛け

perl で SSI 風の機能を作ってしまう

SSI というのは、html で記述したページのなかで、プログラムの実行を指定して、 そのプログラムの出力をページ内に入れることができたりする機能です。 サーバー側で入れてくれるので、サーバーサイドインクルード(SSI)といいます。
とっても、便利なのですが BIGLOBE では SSI はつかえません。
つかえないなら、つくってしまえ! ということで SSI もどきを作成してカウンターを表示することにします。

SSI は、こんな記述をします。

<!--#exec cmd="./count.pl" -->

以下のような形式でパラメータも渡すことが出来るようにします。

<!--#exec cmd="./count.pl count.dat" -->


で、こうした記述を .htm に書いておくと couunt.pl を実行してその結果を組み込んでくれるようにしたいと思います。


ssi.cgi は以下のようにして起動します。

<A HREF="./ssi.cgi ctr-ex1.htm">


ctr-ex1.htm が表示されるのですが、そのとき ctr-ex1.htm 内に書いてある

<!--#exec cmd="./ctr-ex1.pl ctr-ex1.dat" -->

という記述を ctr-ex1.pl の実行結果をおきかえて表示します。

以下のような動作になります。

???わはは、分かりにくい説明ですね(^^;;;
説明を読んでいるより、実際に動かしてみた方がわかりやすいかもしれません (^^;;;

ssi.cgi で出来ること

NCSA による SSI の解説(英語)

さらにもうひとつ仕掛け

直接、ctr-ex1.htm を指定したのでは、アクセスカウンターは、 表示されないことになります。一番アクセスカウンターをつけたい index.htm なんかだと困りますよね! なんとか起動してみましょう。


index.htm を ダミーにして、そこから Refresh で CGI を起動する。

ダミーから起動する

d-index.htm のなかみ

注意が必要なのは、自分のホームページから戻るときです。 仕掛けのしてあるダミーの index.htm に戻ると reload されてしまって、 キャッシュから表示しないので時間がかかるし、 戻るたびにカウントアップされてしまいます。 自分のページ内では、ダミーの index.htm へ戻らないで ssi.cgi?ctr-ex1.htm へ戻ると、キャッシュから読み込んでくれるようです。、


index.htm を frame にして、そこから CGI を起動する。

フレームから起動する

f-index.htm のなかみ

フレームを使った場合は、<FRAME> から起動します。 ちゃんとキャッシュから読んでくれるようです。

余談

ここまで、くるといろんな事に気が付きます。
perl のエラーもみることが出来るようになりました。 この成果は、ふろく でごらんください。

戻る |ホームへ |進む