[ CGI集 | CGI解説 | Perl解説 | HTML解説 | LinuxMemo | Q&A | QuizLink ]      

カウンタCGI T-Count Ver.5.03 説明書

about...

機能

 ひとつのプログラムで複数設置が可能なカウンタです。数字画像は任意のGIF画像が使用できます。特徴は以下の通り:

  • ひとつのプログラムで複数のカウンタを設置可能。
  • 以下の2タイプのカウントを同時に行うことが可能。
       - 述べアクセス数 … 同じ人(ホスト)が一日に複数回アクセスしてきた場合、回数全てをカウントする
       - ホストアクセス数 … 同じ人(ホスト)が一日に複数回アクセスしてきた場合、一回しかカウントしない
  • 総合、今日、昨日、総合H(※)、今日H、昨日Hの6種類の表示が可能。(※H:ホストアクセス数)
  • 画像ファイルは任意のGIF画像が使用可能(動画GIFは不可)。
  • 月別、曜日別、日別の3パターンの合計数と平均数を集計可能。
  • アクセス過多でカウンタファイルが消滅したときも自動リカバリが可能。

[目次へ]

ソース

(ダウンロード後、ファイル名が"-cgi.txt"、"-pl.txt"となってるものを".cgi"、".pl"に変更してください)

全ファイルをまとめてダウンロード 〜 count500.zip

プログラム

※ 「gifcat.pl: GIFファイル連結ライブラリ Ver1.61」は杜甫々氏の作成されたプログラムです。著作権等全ての権利は氏に属します。再配布を許可してくださっている杜甫々氏に感謝致します。最新版の入手先はhttp://tohoho.wakusei.ne.jp/wwwsoft.htmです。

インストール方法

インストール

  1. ソースからファイル一式をダウンロードする。
    ※ ダウンロード方法はソースをダウンロードするを参照。

  2. 2つの 〜.cgi最上部のPerlのパスを正しく設定する。
    ※ 詳しくはPerlのパスを設定するを参照。

  3. tc.cgiの上部にある「変数設定部」の以下の変数を編集する。

    • $basedir
      ..... データファイルを格納するディレクトリ(※注1)
    • $time_fix
      ..... 時差がある場合その補正値(※注2)

    ※注1 データファイルをプログラムと同じ場所に置く場合は $basedir=".";のままでよいです。
    ※注2 単位は時間です。海外のサーバを使っている場合等に設定が必要です。

  4. tcpadm.cgiの上部にある「変数設定部」の以下の変数を編集する。

    • $password
      ..... 管理用パスワード(半角英数)
    • $admin_email
      ..... 管理者のメールアドレス(※注3)
    • $basedir
      ..... データファイルを格納するディレクトリ
    • $backurl
      ..... 「戻る」のリンクをクリックしたときに移動する先

    ※注3 @ の前に必ず \ をつけて下さい。(例, $admin_email = "t-nishida\@mvh.biglobe.ne.jp";)

  5. *.cgi*.plをFTPのアスキーモードで転送する。パーミッションは、.cgi を 705.pl を 604にする。
    ※ FTPについてはプログラムをFTPで送るを参照。
    ※ パーミッションについてはパーミッションを設定するを参照。

    (telnetの場合)
    % chmod 705 tc.cgi
    % chmod 705 tcpadm.cgi
    % chmod 604 gifcat.pl

  6. tcdall.txt, tcdyst.txt, tcdhst.txt, tcdlog.txt, tcdbak.txtの5つの空ファイルを作る。
    ※ 空ファイルの作り方は、空ファイルの作り方を参照。

  7. 上で作った5つの.txtファイルを、$basedirで指定したディレクトリ ( $basedir="."; の場合は上と同じディレクトリ。以下同様。)にFTPでアスキー転送する。パーミッションは全て606に設定する。

    (telnetの場合)
    % chmod 606 tcdall.txt
    % chmod 606 tcdyst.txt
    % chmod 606 tcdhst.txt
    % chmod 606 tcdlog.txt
    % chmod 606 tcdbak.txt

  8. 上と同じディレクトリに、ディレクトリlockdirimgを作る。パーミッションは707に設定する。

    (telnetの場合)
    % mkdir lockdir
    % mkdir img
    % chmod 707 lockdir
    % chmod 707 img

  9. ディレクトリimg中に、数字の画像ファイルをFTPでバイナリ転送する。数字のファイル名は、0.gif, 1.gif, 〜, 9.gifとする("gif" は必ず小文字で)。パーミッションを 604 にする。

    (telnetの場合)
    % cd img
    % chmod 604 *.gif

     数字画像はhttp://www.digitmania.holowww.com/に山ほどあります。気に入ったのがなければ自分で作成してもよいでしょう。

    ※ GIFのタイプによっては正常に表示されない場合があります。また、動画GIFは使用できません。詳しくは画像が崩れる原因を参照。特に自分でGIF画像を作成する場合良く読んでください。

  10. ブラウザからtc.cgiにアクセスしてみる。
     → 「Error (Code:101) - カウンター名が指定されていません」と表示されればOK。
       ※ 上のように表示されない場合、ブラウザでアクセスするを参照して問題を解決してください。

  11. ブラウザからtcpadm.cgiにアクセスしてみる。
     → 管理用ページが表示されればOK。

以上でインストール完了です。

[index]

 

カウンタを作成する

カウンタの作成手順は以下の通り:
  1. まずカウンタコード名を決める。ここではcount1とする。

    ※カウンタコード名には半角英語半角数字が使えます(top, menu1等)。張る場所を想像しやすい名前がよいでしょう。

  2. 管理ページ(tcpadm.cgi)にアクセスする。

  3. カウンタの新規作成、修正、削除」を選び、インストール方法の4で設定した管理パスワードを入力して「作業実行」を押す。

  4. 「カウンタ新規登録」のフォームの、カウンタコードにカウンタコード名(count1)を、述べアクセス数ホストアクセス数にそれぞれ初期値を入れる。

    ※ 新しくカウンタをつくる場合は全て 0 でOKです。
    ※ 既に使ってるカウンタから乗り換える場合はそのときの数値を入力してください。
    ※「述べアクセス数」「ホストアクセス数」の違いについてはフォーム下の説明か後の章を参照。

  5. 作業実行」を押す。
       → 「カウンタ count1 を新規作成しました」と表示されればOK。

  6. フォーム下の「登録情報一覧」表の code のところに count1 が新しく現れているのを確認し、[C]のリンクをそれぞれクリックしてみる。
       → それぞれ横に書いてあるのと同じ数値画像が表示されればOK。

  7. 表の一番右の[Up]をクリックしてみる。
       → 累計の数字に1足したものが表示されればOK。

    ※ 上手く行かなかったときはエラーメッセージが出るので、内容を読んで対処してください。

  8. ページの中のカウンタを表示したい場所に次のように書く。

    総合:<IMG SRC="(tc.cgiのURL)?count1&a&1" WIDTH="80" HEIGHT="21">/
    総合H:<IMG SRC="(tc.cgiのURL)?count1&ah" WIDTH="80" HEIGHT="21">/
    今日:<IMG SRC="(tc.cgiのURL)?count1&t" WIDTH="80" HEIGHT="21">/
    今日H:<IMG SRC="(tc.cgiのURL)?count1&th" WIDTH="80" HEIGHT="21">/
    昨日:<IMG SRC="(tc.cgiのURL)?count1&y" WIDTH="80" HEIGHT="21">/
    昨日H:<IMG SRC="(tc.cgiのURL)?count1&yh" WIDTH="80" HEIGHT="21">

    ※ URLは相対パス(./cgi/count/tc.cgi等)でも絶対パス(http://〜/tc.cgi)でも構いません。以下同様。
    ※ WIDTHには (gifファイルの横幅)×桁数(標準では5桁)、HEIGHT は gifファイルの縦幅を書いて下さい。桁数の変え方は後述。
    ※ ? 以降のパラメータの詳しい解説はカウンタの見た目を変えるを参照。

  9. ページを実際にサーバーにFTPしてみて、表示されるかどうか確かめる。リロードしたら数字が増えるかも確認する。

[index]

 

カウンタを追加する

  1. 新しいカウンタの名前を、前のものとは重複しないように決める。(先ほどが count1 だったので、ここでは count2 とする。)

  2. あとは上のカウンタをつけると同様。カウンタコード名をcount2に置き換えて下さい。

    タグは以下のようになります。

    総合:<IMG SRC="(tc.cgiのURL)?count2&a&1" WIDTH="80" HEIGHT="21">/
    総合H:<IMG SRC="(tc.cgiのURL)?count2&ah" WIDTH="80" HEIGHT="21">/
    今日:<IMG SRC="(tc.cgiのURL)?count2&t" WIDTH="80" HEIGHT="21">/
    今日H:<IMG SRC="(tc.cgiのURL)?count2&th" WIDTH="80" HEIGHT="21">/
    昨日:<IMG SRC="(tc.cgiのURL)?count2&y" WIDTH="80" HEIGHT="21">/
    昨日H:<IMG SRC="(tc.cgiのURL)?count2&yh" WIDTH="80" HEIGHT="21">
※ ? 以降のパラメータの詳しい解説はカウンタの見た目を変えるを参照。

[index]

 

ディレクトリ構成図

ここまで作業した結果の全体のディレクトリ構造は次のようになります。($basedir="."; の場合)
※ カッコ内の数字はパーミッション。<〜>はディレクトリ。
+ tc.cgi (705)
+ tcpadm.cgi (705)
+ gifcat.pl (604)
+ tcdall.txt (606)
+ tcdyst.txt (606)
+ tcdhst.txt (606)
+ tcdbak.txt (606)
+ tcdlog.txt (606)
+ <lockdir> (707)
+ <img> (707)
      + 0.gif (604)
      + 1.gif (604)
      + ...
      + 9.gif (604)

[index]

使い方

カウンタの見た目を変える

パラメータを変更することによってカウンタの画像や桁数を変更することができます。各パラメータの意味は以下の通り:
<img src="tc.cgi?(1)&(2)&(3)&(4)&(5)">

途中のパラメータが必要ない場合は "tc.cgi?count1&y&&&3" という具合に & を続けてください。

[index]

1:カウンタコード名を変える

1番目のパラメータを変えることによって、表示するカウンタのカウンタコード名を変更することができます。このパラメータは必須です。カウンタコード名についてはカウンタを作成するを参照。

[例1] カウンタコード名 "count2" のカウンタを表示したいとき

    あなたは <img src="tc.cgi?count2&a&1"> 人目の訪問者です。
     本日は <img src="tc.cgi?count2&t"> 人の方が訪れています。
     昨日は <img src="tc.cgi?count2&y">人の方が訪れました。

[index]

2:カウント数の種類を変える

2番目のパラメータを変えることによって、カウント数の種類を変えることができます。このパラメータは必須です

表示対象 総合 今日 昨日 総合H 今日H 昨日H
パラメータ値 a t y ah th yh

※ Hがないもの("今日"等)とあるもの("今日H"等)の違いに関しては述べアクセス数とホストアクセス数の違いを参照。

[例1] 総合、今日、昨日を表示したいとき

    あなたは <img src="tc.cgi?count1&a&1"> 人目の訪問者です。
     本日は <img src="tc.cgi?count1&t"> 人の方が訪れています。
     昨日は <img src="tc.cgi?count1&y">人の方が訪れました。

[例2] 今日と今日Hのカウント数を表示したいとき

今日の訪問者数: <img src="tc.cgi?count1&t">
(ホスト別:<img src="tc.cgi?count1&th">

[index]

3:カウンタを増加させる

3番目のパラメータを1にすると、そのカウンタを表示した際にカウント数が増加します。何も指定しない場合は現在の数字を表示するだけでカウント数は増加しません。通常は総合(a)または総合H(ah)のところにつけておくとよいでしょう。

[例1] 総合カウント数だけ表示したいとき

Total Count: <img src="tc.cgi?count1&a&1">
[例2] 総合H、今日H、昨日Hを表示して、総合Hのところでカウント数を増加させたいとき
    あなたは <img src="tc.cgi?count1&ah&1"> 人目の訪問者です。
     本日は <img src="tc.cgi?count1&th"> 人の方が訪れています(重複除く)。
     昨日は <img src="tc.cgi?count1&yh">人の方が訪れました。

※ th, yh にも1をつけてしまうと、このページを表示する度に3ずつ増えてしまうので注意。

[index]

4:カウンタ画像を変更する

4番目のパラメータを変えることによって、カウンタの数字画像を変更することができます。何も指定しない場合はimgフォルダ内の画像ファイルが使用されます。

画像ファイルは任意のGIFファイル(条件あり、下記参照)を使用できます。手順は以下の通りです:

  1. 使用したい数字画像(0〜9)のGIF画像を用意する。Photoshop などGIF画像を作成できるグラフィックソフトで自作したり、Digit Maniaさんや他の素材サイトから取ってきたりしてください。

    GIF画像は以下の条件を満たす必要があります:
        - パレットを合わせる
        - 透過GIF、インターレスGIFは避ける
    ※それぞれの意味はグラフィックソフトのヘルプ等を参照。

  2. それぞれのファイルを数字に合わせて 0.gif, 1.gif, ... , 9.gif という名前に変更する。

  3. インストールの 4, で指定した $basedir の位置($basedir = "."; なら tc.cgi と同じフォルダ)に適当な名前のフォルダ(img2など)を作成し、そこに 0.gif - 9.gif をFTPする

  4. 4番目のパラメータでそのフォルダ名を指定する。

    [例1] 総合カウント数を img2 フォルダに置いた数字画像を使って表示したいとき

        あなたは <img src="tc.cgi?count1&a&1&img2"> 人目の訪問者です。
    [例2] 総合をimg、今日をimg2、昨日をimg3で表示したいとき
        Total: <img src="tc.cgi?count1&a&1"> hits /    (←指定がない場合はimg
        Today: <img src="tc.cgi?count1&t&&img2"> hits /
        Yesterday: <img src="tc.cgi?count1&y&&img3"> hits

[index]

5:カウンタの桁数を変更する

5番目のパラメータを変えることによって、カウンタの桁数を変更することができます。何も指定しない場合は5桁になります

[例1] 総合カウント数を7桁で表示したいとき

    あなたは <img src="tc.cgi?count1&a&1&&7"> 人目の訪問者です。
[例2] 総合を8桁、今日と昨日を4桁で表示したいとき
    Total: <img src="tc.cgi?count1&a&1&&8"> hits /
    Today: <img src="tc.cgi?count1&t&&img2&4"> hits /
    Yesterday: <img src="tc.cgi?count1&y&&img3&4"> hits

[index]

 

管理ページの使い方

tdpcnt.cgi にアクセスするとカウンタの管理を行うページが表示されます。管理ページからは以下の作業ができます。

[index]

カウンタログ、動作ログ閲覧

管理ページのトップ(tdpcnt.cgi)でカウンタログ、動作ログ閲覧をチェックして「作業実行」ボタンを押すと、各カウンタコード毎にログを見ることができます。具体的な内容は以下の通り。それぞれ延べアクセス数とホストアクセス数の両方が記録されています。詳しい表示の見方はログページの上部を参照してください。

ログのサンプルはこちら

  • 総合(総カウント数、一日あたりの平均カウント数)
  • 月別(総カウント数、一日あたりの平均カウント数)
  • 曜日別(総カウント数、一日あたりの平均カウント数)
  • 日別(カウント数)
  • ホストログ(その日の0時以降にアクセスしてきたホストと時間の情報、サンプル
  • 動作ログ(その日の0時以降のロックやクラッシュリカバリの情報、サンプル

初期設定ではログ閲覧にパスワードは必要ありませんが、パスワードによる認証をかけることも可能です。詳しくはその他の機能を参照。

[index]

カウンタ新規作成、修正、削除

管理ページのトップ(tdpcnt.cgi)でカウンタ新規作成、修正、削除をチェックして、管理パスワード(インストールの4で設定)を入力し、「作業実行」ボタンを押すと、 カウンタの新規作成、修正、削除の画面へ移動します。使い方は画面上のHelpを参照してください。

[index]

動作ログのクリア

管理ページのトップ(tdpcnt.cgi)で動作ログのクリアをチェックして、管理パスワード(インストールの4で設定)を入力し、「作業実行」ボタンを押すと、 動作ログをクリアすることができます。動作ログは一日一回クリアされますので、基本的には行う必要はないです。(クリアされない仕様だったころの遺物です。)

[index]

カウンタログのクリア

カウンタログのクリアは管理ページからはできません。手動で行う場合は、tcdhst.txt という名前で空ファイルを作成し、$basedir の位置にある既存のファイルと同じ場所に上書きでFTPしてください。

[index]

Note...

延べアクセス数とホストアクセス数の違い

T-Count 5 は延べアクセス数ホストアクセス数の両方を常にカウントするように作られています。違いは以下の通りです:

  • 述べアクセス数 … 同じ人(ホスト)が一日に複数回アクセスしてきた場合、回数全てをカウントする
  • ホストアクセス数 … 同じ人(ホスト)が一日に複数回アクセスしてきた場合、一回しかカウントしない

延べアクセス数を表示する場合は、2番目のパラメータに a, t, y をつけます。ホストアクセス数を表示する場合は、2番目のパラメータに ah, th, yh をつけます。T-Count 5 は常時両方の方法でカウントしていますので、表示の指定さえすればそちらの数を表示してくれます。ちなみに一般に配布されているCGIカウンタは、大抵どちらか一方しかカウントできないようです。(後者のほうが多い?)

「延べアクセス数」と「ホストアクセス数」のどっちが本物の「アクセスカウント」なのか、については各々意見があると思いますが、CGIカウンタの世界では後者(ホストアクセス数)が本当のアクセス数だ、という意見が強いようです。同じ人を一日何度も重複してカウントするのは邪道だ、というのがその根拠のようです。でも、一般社会では逆に重複して数えるケースのほうが多いような気がします。例えば百貨店の来客数調査で、一度別の店に行った人がやっぱこっちがいいと戻ってくる場合も多々ありますし、それを来客数から省くことはしません。どっちの方法を取るかはユーザの判断に委ねるべきと思っています。(私はどっちかというと「延べアクセス数」派なんですが。)ということで、T-Count 5 では両方を取得できる仕様にしました。

ちなみに大手Webサイトや携帯サイトのいわゆる「ヒット数」というのは、「そのサイト内にあるページや画像など全ファイルへのリクエスト回数の総計」を差すことが多いようです。例えば、ある訪問者がトップページから入ってきて10枚の画像を見たら「11ヒット」ですし、1つのページに20個のアイコンが張ってあった場合、そこを表示しただけで「21ヒット」とカウントします。インチキですね。はい。実際「100万ヒット!」とか言ってるページも実際の「ホストアクセス数」は1万人前後だったりします。このように「カウント数」と言っても「実際何を数えているのか」をはっきりさせてるとこは少ないです。全てのサイトがそのような数え方をしているとは言いませんが、「カウント数」は人によって解釈の違うアテにならない数値だと考えておきましょう。

[index]

 

自動リカバリ機能の仕組みと保障範囲

 T-Count5は多重同時アクセスによるカウンタリセットが起きた際に、過去ログを使ってカウント数を直前の数までリカバーする機能を持っています。リカバリは自動的に行われるので、管理者は特に意識する必要はありません。

 各種データファイルが消滅した際に、保障されるカウントデータの範囲は以下の通りです。(1.以外は殆ど起きません。)

  1. tcdall.txt が消滅 → 消える直前まで回復
  2. tcdall.txt, tcdbak.txt が同時に消滅 → その日の開始時点まで回復
  3. tcdall.txt, tcdbak.txt, tcdyst.txt が同時に消滅 → 自動リカバリはできません(手動でカウント数を設定しなおして回復)
 リカバリが起きた場合、動作ログ(tcdlog.txt)に以下のような記述が追加されます:

2004/05/26 10:04:47 Datafile crash has detected. Start recovery.(←カウンタ消滅、リカバリ開始)
2004/05/26 10:04:47 top: Recovered to a=3795243, ah=340925(←カウンタtopをリカバー)
2004/05/26 10:04:47 cgi: Recovered to a=1555116, ah=90816
2004/05/26 10:04:47 carrot: Recovered to a=798, ah=501
2004/05/26 10:04:47 Recovery has been finished.(←リカバリ完了)

[index]

 

その他の設定

管理用CGI(tcpadm.cgi)の「変数設定部」の直下にあるパラメータを使って以下のような設定が可能です:([〜]は初期値)

  • $NEED_PASSWORD_FOR_LOGVIEW [0]
       ... ログを見る際にパスワードを要する(1)か、要さない(0)かの設定。
  • $RECENT_DAYS_COUNT [7]
       ... ログの上部に表示される「最近×日間の統計」の日数を設定。
  • $AVG_IGNORE_DAYS_COUNT [1]
       ... カウント開始直後に統計対象から除外する日数を指定。(設置初日は設置時刻によってはカウント数が少なくなることが考えられ、平均値に影響を与えかねないので、初日のみ除外することをお勧めします。)

[index]

バージョン情報

バージョン履歴

  • (2003/8/9) Ver.5.00
     「延べアクセス数」と「ホストアクセス数」の差を知りたくなりこっそり作成。自分でのみ使用。

  • (2004/6/2) Ver.5.03
     各種バグや使い辛さを修正して正式公開。

[index]

バージョンアップ方法

旧TcounTとの互換性はありません

T-count5 は、旧 TcounT、TcounT Lite とのカウンタデータ、ログデータを引き継ぐことはできません。カウンタ用のIMGタグの互換性もありません。バージョンアップする場合は、インストール方法の説明通りに設置し、カウンタを作成するに従って初期値を以前の続きの値にセットし、カウンタの見た目を変えるに従ってHTMLタグを書き直してください。

[index]

バグ情報&修正方法

n/a

[index]