Last updated on 2009/01/11.
フリーCGI:includeカウンター(SSI)
由来
CGIを作り始めた頃購入した書籍に載っていたカウンターSSIがexecのもので、
しかし当時使っていたサーバがSSIはincludeしか使えなかったか何かで、
include文で実装できるカウンターを作ろう!と思い立った気がします。
特徴
- 文字コードはSJISです。
- include文で実装できるため、exec文が使えないサーバで使用できます。
機能
- 一つのCGIで、複数のページにカウンターをつけることができます。
- 複数のページで、異なる数字画像を使うことができます。
設置の前提条件
- zipが解凍できるソフトが必要です。
最近Windowsなら特にソフトも要らないようですが。
- カウンター用の数字gifファイルを用意して下さい。
素材HPなどで、拾って来れると思います。
設置方法:まず1つだけ
- タイトル行のincnt.cgi Ver〜をクリックして、
incnt.zipをダウンロードします。
- incnt.zipを解凍します。そうするとincnt.cgiとcnt.datができます。
- incnt.cgiの初期設定を変更します。
絶対に変更する必要のある箇所はソースの頭の方にあります。
- 一行目の#!/usr/local/bin/perlを、Webサーバの環境に合わせて変更して下さい。
- カウンターデータファイルを置く場所を、$cntdirで指定します。
初期値はinctndataになっているので、CGIを置いてあるディレクトリにincntdataというディレクトリを作ってそこにデータファイルを置く場合には、そのままです。
- カウンターgifを置くディレクトリを置くディレクトリの仮想パスを、$gifpathで指定します。
- カウンターデータファイルの名前を$cntfileで指定します。初期値はcnt.datになっています。
- カウンターgifファイルを置くディレクトリを$gifdirで指定します。
- カウンターgifファイルの、横幅を$widthで、高さを$heightで指定します。
- 各ファイルをサーバに置きます。
- incnt.cgiをパーミッション755で。
- カウンターgifファイル(0.gif〜9.gif)を、$gifdirで指定したディレクトリに。
- $gifpathで指定した場所に当たるところに、$cntdirで指定したディレクトリを用意し、そのディレクトリに$cntfileで指定したカウンターデータファイル(サイズ0)をパーミッション666で。
例えば、サンプルページは、zipに入っているcgiをいじらずに使っていますが、このサンプル用のファイル配置は以下のようになっています。
pubric_html/CGI/sample/index.html
/incnt.cgi
/cntgif/0.gif〜9.gif
/incntdata/cnt.dat
- カウンターを設置したいhtmlファイルに、<!--#include virtual="incnt.cgi"-->と書き入れて、サーバに置きます。尚、そのhtmlファイルとincnt.cgiのあるディレクトリが同じ場合はこれでいいですが、異なる場合は、htmlファイルから見て、incnt.cgiのある場所を相対パスなどでちゃんと指定してください。
それで多分動くはずです。
拡張方法&FAQ
- 複数のカウンターを設置する
-
- 2つ目のカウンターデータファイル(サイズ0)を用意します。例えばcnt2.datとします。
- パーミッション666で、$cntdirで指定したディレクトリに置きます。
- htmlファイルで指定する時に、f=でデータファイル名を指定します。例えばこのようになります。<!--#include virtual="incnt.cgi?f=cnt2.dat"-->
3つ目4つ目も同様に設置して下さい。
- 2つ目のカウンターでは、違うカウンターgifファイルを使いたい
- 上の「複数のカウンターを設置する」と、1,2までは一緒です。
- 使いたいカウンターgifファイル(0.gif〜9.gif)をまとめたディレクトリを用意します。例えばcntgif2とします。そのディレクトリを$gifpathで指定した場所に当たるところに置きます。
- htmlファイルで指定する時に、f=でデータファイル名を、d=で、gifファイルを置いたディレクトリ名を指定します。gifファイルの横幅や高さがデフォルトのgifファイルと異なる場合は、wでgifファイルの横幅を、hでgifファイルの高さを指定します。例えばこのようになります。<!--#include virtual="../incnt.cgi?f=cnt2.dat&d=cntgif2&w=27&h=27"-->
ここまでで、ファイル配置は以下のようになっています。
pubric_html/CGI/sample/index.html
/incnt.cgi
/cntgif/0.gif〜9.gif
/cntgif2/0.gif〜9.gif
/incntdata/cnt.dat
/cnt2.dat
/test/test.html(今回増やしたhtmlとします)
$gifpathを仮想パスで指定してあるため、htmlファイルがあるディレクトリが1つ目と2つ目で異なっていても、使用可能です。
リリースノート
- 1999/07/20
- incnt.cgi v1.0作成
- 2000/02/27
- 複数のデータが扱えるように変更して、v2.0としました。
- 2001/03/05
- ロックファイルがかかったままになった場合に備えて修正して、v2.1としました。
↑ このページのTOPへ