HTMカウンタ(imCTHTM)
特徴
GIF数値画像を連結しHTMLファイルの<IMG>タグで起動できるカウンタです。
大きさが異なる数値画像を連結でき、縦方向の連結も可能です。
カウンタ値、アクセス時間、アクセス元リモートホストIPアドレス、リンク元URLがログに記録できます。
制限時間内のリロードをカウントさせない設定が可能です。
カウンタマネージャを併用すれば、カウンタ値の変更やリモートホストIP調査ができます。
サンプル
サンプル(横方向に数値画像を連結したカウンタ)
サンプル(縦方向に数値画像を連結したカウンタ)
アクセスログ(カウンタスクリプトで記録されたアクセスログ)
ダウンロード
imCTHTM ver1.01(LHAファイル: 20k)
ファイルレイアウト
ダウンロードした圧縮ファイルを解凍すると、以下のようなディレクトリ構成でファイルが展開されます。
このままの構成であればユーザ変数の編集をしないで動作確認が可能となっています。
[ ] 内の値は、パーミション-転送モード(A:ASCCI / B:BINARY)を示します。
CTHTM_***(***はバージョン)
├ cgi-bin [755]
| └ imCTHTM [755]
| ├ im_cthtm.cgi [705-A] アクセスカウンタスクリプト
| ├ im_ctman.cgi [705-A] カウンタマネージャスクリプト
| ├ pgifcat.pl [604-A] GIF画像連結ライブラリ
| ├img [755]
| │ ├ 0.gif [644-B] カウンタ値 0 に相当する画像
| │ ├ 1.gif [644-B] カウンタ値 1 に相当する画像
| │ ├ :
| │ └ 9.gif [644-B] カウンタ値 9 に相当する画像
| ├ data [755]
| │ ├ count.dat [606-A] カウントデータファイル(初期値 0 )
| │ └ access.log [606-A] アクセスログファイル(空ファイル)
| └ lock [707] ← パーミッション注意
| ├ ct.lock [606-A] カウントデータファイル用ロックファイル(空ファイル)
| └ ac.lock [606-A] アクセスログファイル(空ファイル)
└ home [755]
└ imCTHTM
├ index.html [644-A] このファイル(動作上不要)
└ sample.html [644-A] カウンタスクリプトを起動するためのHTMLファイル
※cgi-binディレクトリのファイルはCGIが実行可能なディレクトリに置いて下さい。
※CGI専用サーバが指定されている場合はデフォルトの設定では動作しないこともあります。
ファイル説明
imCTHTMで必要なファイルは以下の通りです。(編集項目を確認したい場合は、スクリプト名をクリックして下さい)
im_cthtm.cgi
カウンタ本体のスクリプトです。
Perlのパスを確認し、必要に応じ編集する必要があります。
使用環境に合わせてユーザ変数をテキストエディタで編集する必要があります。
im_ctman.cgi
カウウンタマネージャのスクリプトです。
Perlのパスを確認し、必要に応じ編集する必要があります。
使用環境に合わせてユーザ変数をテキストエディタで編集する必要があります。
「パスワード」は、アクセスログ確認時に承認画面のパスワード欄に入力する文字列です。
whoisコマンドが利用できないサーバでは「whoisコマンドの利用可否」を 'no' に設定して下さい。
pgifcat.pl
GIF画像連結用のライブラリです。
特に編集の必要はありません。
このライブラリはとほほのWWW入門を運営するとほほ氏が作成したgifcat.plを機能拡張したものです。
sample.html
<IMG>タグを利用してカウンタスクリプトを起動するファイルです。
Javaスクリプトを利用しリンク元の情報を取得できるようにする場合はHTMLファイルに以下の記述を加えます。
※この方法だとJavaスクリプトに対応していないブラウザでカウンタが表示されません。
<script language="JavaScript">
<!--
document.write("<IMG src=\"../cgi-bin/imCTHTM/im_cthtm.cgi?ref=",document.referrer,"\">");
// -->
</script>
Javaスクリプトを使わずにカウンタは動作させる場合HTMLファイルに以下の記述を加えます。
※リンク元情報はカウンタスクリプトをリクエストしたHTMLファイルになります。
<IMG src="../cgi-bin/imCTHTM/im_cthtm.cgi">
count.dat
カウントデータファイルです。(初期値 0)
access.log
アクセスログデータファイルです。(空ファイル)
ct.lock
ac.lock
データファイル保護用のロックファイルです。(空ファイル)
*.gif
グラフィックカウンタとして使用する際に表示させる数値画像ファイルです。
ファイル名を対応させる数値 n に逢わせて n.gif とし、0.gif〜9.gifまでの各数値画像を用意して下さい。
アニメーション画像以外のGIF画像が使用可能です。
設置手順
01).数値0〜9に対応する0.gif〜9.gifの数値画像を用意します。
※アニメーションGIF画像は使えません。
※見かけ上アニメーションでなくてもアニメーションとして記録されている画像もあるので注意が必要です。
02).im_cthtm.cgiのユーザ変数をテキストエディタで編集します。
03).im_ctman.cgiのユーザ変数をテキストエディタで編集します。
04).HTMLエディタなどでカウンタ値を表示させたいHTMLファイルを作成し、ファイル名をindex.htmlとして保存します。
同梱のsample.htmlを参考にしてindex.htmlを作成してください。
※カウンタ値を表示させたい部分に
<IMG src="設置ディレクトリ/im_cthtm.cgi">
または
<script language="JavaScript">
<!--
document.write("<IMG src=\"設置ディレクトリ/im_cthtm.cgi?ref=",document.referrer,"\">");
// -->
</script>
と記述します。
※<IMG src="設置ディレクトリ/im_cthtm.cgi width=** height=**>と画像サイズを指定すればレイアウトが確定し
見栄えが整いますが横幅が異なる画像を連結すると文字が歪むので注意してください。
05).FTPソフトなどでファイルをサーバに転送します。
06).サーバに転送したファイルのディレクトリやファイルのパーミッションを設定します。
07).ブラウザからindex.htmlをリクエストします。
正しく設置できていればindex.htmlの内容と共にカウンタ値が表示されます。
08).次にim_ctman.cgiをリクエストし承認画面が表示されたらパスワードを入力しログインして下さい。
正しく設置できていればアクセスログが表示さます。
カウンタマネージャの使い方
im_ctman.cgi を利用するとカウンタ値の修正やアクセスログの管理ができます。
【カウンタマネージャの起動】
ブラウザからim_ctman.cgiリクエストし承認画面でパスワードを入力しログインボタンを押します。
パスワードはim_ctman.cgiのユーザ変数で設定したものを入力してください。
【カウンタ値の修正】
テキストエリアに任意の数値を記入し[カウンタ値修正]ボタンを押して下さい。
【ログ再読込】
アクセスログを再読込したい場合には[再読込]ボタンを押して下さい。
【アクセスログのクリア】
アクセスログを初期化(空ファイルに)する場合は[ログクリア]ボタンを押して下さい。
【アクセスログの見方】
アクセスログには以下のデータがリスト形式で表示されています。
COUNT:アクセス時のカウンタ値です。
REMOTE_ADDR : アクセス元サーバのIPアドレスです。
※whoisコマンドが利用できる場合はここをクリックするとIPアドレス調査ができます。
ACCESS_TIME : アクセスした時間です。
USRE_AGENT : アクセス時に利用されたブラウザの情報です。
HTTP_REFERER: リンクを辿ってきた際は、リンク元のURLが表示されます。
特記事項
【JPNICデータベースの利用について】
IPアドレス調査は、JPNICのデータベースを利用しています。
JPNICのデータベース利用規定を守り適切な運用を行って下さい。
【imCTHTMをフレームで起動する際の制約】
フレームを利用してim_cthtm.cgiを起動するしたときリンク元URLはフレームを定義したファイルとなりカウントアップしません。
フレームを利用してim_cthtm.cgiを起動するきは$im_env{'set_url'}に存在しないURLを設定してください。
※自分のホームページアドレスを入力した場合はカウントアップしません。
【未カウントの条件】
ユーザ変数$im_env{'set_url'}で指定したURLを含むリクエストのときはカウントアップしません。
ユーザ変数$im_env{'retry_limit'}設定時間(秒)内での同一IPアドレスのアクセスはカウントアップしません。
※設定時間内に複数回のリクエストがあった場合は最後のリクエストがあった時間を基準にします。
※この機能はアクセスログを不要とした場合(またはアクセスログの行数指定が極端に小さい場合)は機能しません。