RevoCounter CGI(アニメーションカウンター) Ver 1.4(フリー)

カウントアップする際に、数字がぐるりと回るカウンターです。i-mode にも対応!Perl で作成されたカウンターで、CGI として動作します。このサイトのトップページにも使っています。

counter0 counter1
counter8 counter4
counter6 counter3
counter5 counter2

i-modeのサンプルは、http://www.futomi.com/i/revo.html でご覧いただけます。

特徴

  • カウントアップするときに、数字が前の数字から新しい数字に、ぐるっと回転するアニメーションをします。
  • i-mode にも対応※1
  • アニメーションの速さを指定できます。
  • Cookie により、同じ人がブラウザーで再読込みしたり、他のページから戻ってきたとしても、カウントアップしないように設定できます。
  • カウンターはアニメーション GIF で出力しますが、UNISYS 社が特許をとっている LZW 圧縮を使っておりません。
  • 一つの CGI 設置で、複数のページに別々にカウンターを設定することができます。
  • カウンターの桁は、自由に設定することができます。また、指定した桁をオーバーした場合、0からスタートするようにしたり、もしくは一桁増やしてカウントアップしつづけるようにもできます。
  • 透過色を設定することができます。
  • 他人が RevoCounter を使えないように URL で制限するガード機能付き
※1
アニメーションGIFに対応した機種に限ります。(209i, 502i 以上)

フリーソフト

本CGIは、フリーソフトとして公開しております。CGI 利用規定に従ってご利用頂ければ料金は発生しません。ご自由にご利用ください。

CGIのダウンロード

ダウンロードの前に、必ず、CGI 利用規定を良くお読みになり、同意したうえで、ご利用下さい。

バージョン サイズ ファイル
1.4 100 KB (102,895 バイト) revocount1_4.zip ダウンロード

ファイルの一覧と機能

CGI をダウンロードし、解凍してください。それぞれのファイルについて解説します。

ファイル名 転送モード パーミッション1 パーミッション2 ファイルの機能
revocount/
変更不要 707 本CGI用ディレクトリ
revocount.cgi
[ASCII] 704 705 カウンターCGI(本体)
revoconfig.cgi
[ASCII] 変更不要 変更不要 設定スクリプト
data/
変更不要 707 カウンター値データ格納ディレクトリ
default.dat
[ASCII] 変更不要 606 カウンター値データ(デフォルト用)
base/
変更不要 変更不要 ベースイメージ格納ディレクトリ
default.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(デフォルト用)
sample1.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
sample2.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
sample3.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
sample4.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
sample5.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
sample6.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
sample7.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
sample8.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
sample9.bmp
[BINARY] 変更不要 変更不要 ベースイメージ(サンプル)
Readme/
ReadMe※1
※1
HTML 形式の ReadMe ファイルです。このホームページが入っています。このフォルダは、サーバへアップロードする必要がありません。

転送先

フォルダ「revocount」を、転送モードも注意して、ご利用のレンタルサーバー指定の場所にアップロードしてください。

パーミッション

これらパーミッションは、あくまでも例です。ご利用のレンタルサーバー事業者の指示に従ってください。

上表には、パーミッションの指定が 2 種類指定しております。CGI がオーナー権限で実行されるサーバをお使いの場合には、パーミッション1の設定を使ってください。CGI が ohter 権限で実行されるサーバをお使いの場合には、パーミッション2の設定を使ってください。

CGI がオーナー権限で実行されるか、other 権限で実行されるかは、ご利用のレンタルサーバー事業者に確認してください。おおむね、CGI ファイルのパーミッションが、704 でも動作する場合には、オーナー権限で実行されると考えても結構です。CGI ファイルのパーミッションが、705 もしくは 707 でないと動作しない場合には、other 権限で実行されているとお考えください。

「変更不要」と指定しているファイルは、サーバにアップロードするだけで OK です。あえてパーミッションを変更しないでください。

Perlパスの編集

プロバイダーによって、Perlパスが異なります。デフォルトでは #!/usr/local/bin/perl と設定しております。ご利用のレンタルサーバー事業者の指示に従い、以下のファイルの Perl パスを書き換えてください。

  • revocount.cgi

設定内容

お使いになる環境に合わせて、またお好みに合わせて、設定を変更してください。設定の変更は、すべて revoconfig.cgi を編集することにより実現します。

#----------------------------------------------------------------
# ● 表示桁数の設定
# 設定桁数にカウント値が満たない場合には、左から0が表示されます。
# たとえば、桁数設定が「6」で、カウント値が「1234」の場合には、
# 「001234」と表示されます。
#----------------------------------------------------------------
$Figures = 6;


#----------------------------------------------------------------
# ● 表示桁数固定・非固定の設定
# 表示桁数を、カウント値が超えた場合に、表示桁数を自動的に増やすか
# もしくは固定にするかを指定します。
# たとえば、表示桁数設定が「6」で、カウント値が「999999」から
# 「1000000」にアップする際に、
# 非固定であれば、「1000000」と7桁で表示され、
# 固定であれば、「000000」と6桁で表示されます。
# 非固定の場合には、「0」、固定の場合には、「1」を指定してください。
#----------------------------------------------------------------
$FiguresFixFlag = 0;


#----------------------------------------------------------------
# ● アニメーションの時間指定[ms]
# カウント値がアップする際の、アニメーションの時間を指定できます。
# ミリ秒単位で、指定してください。2秒の場合には、「200」と指定します。
# 【注意】ここでの指定はあくまでも目安です。通信速度やパソコンの
# スペックなどの諸条件により、指定どおりとはならない場合が
# ありえます。
#----------------------------------------------------------------
$AniTime = 200;


#----------------------------------------------------------------
# ● 透過色指定(16進数)
# アニメーションカウンターは、透過GIFにすることができます。
# 透過色を16進数(6桁)で指定してください。
# 【例】
# $TransparentColor = 'FFFFFF';
# 透過色を指定しない場合には、
# $TransparentColor = '';
#----------------------------------------------------------------
$TransparentColor = '';


#----------------------------------------------------------------
# ● Cookieによるカウントアップ防止機能(使わない:0, 使う:1)
# 同じ人がアクセスしたり、ブラウザーで再読込をしても、カウンター
# の値をアップしないようにできます。
# この防止機能を使わない場合には、「0」を
# 使う場合には、「1」を指定して下さい。
# 【注意】 ここの設定を有効にしても、Cookieを無効にしている
# ブラウザーに対しては、効きません。
#----------------------------------------------------------------
$CookieFlag = 1;


#----------------------------------------------------------------
# ● カウントしないガード時間
# 以前サイトにアクセスしてから、ここで指定したガード時間を超え
# ずに、再度アクセスした場合には、カウンター値がアップしません。
# 逆に、超えている場合には、カウンター値はアップします。
# この設定は、Cookieによるカウントアップ防止機能が有効になっている
# 場合に、有効となります。
# 単位は、時間です。
# $GuardTime = 6;
# と指定すれば、6時間を意味します。
#----------------------------------------------------------------
$GuardTime = 6;


#----------------------------------------------------------------
# ● URLガードフラグ(使わない:0, 使う:1)
# あなたが設定したこのCGIを、他人に勝手に使われないようにするため
# の機能です。
# この機能を無効にする場合には「0」を、有効にする場合には、「1」
# を指定して下さい。他人にカウンターを悪用されないためにも、有効に
# することをお勧めします。有効にした場合には、下の「あなたのホーム
# ページのURLを正しく設定してください。
# 【注意】この機能は、ブラウザーが送信する環境変数「HTTP_REFERER」
# を使います。したがって、「HTTP_REFERER」を送信しない
# クライアント(i-mode端末等)に対しては、カウンターが表示
# されなくなります。
#----------------------------------------------------------------
$UrlGuardFlag = 0;


#----------------------------------------------------------------
# ● あなたのホームページのURL
# URLガードフラグが有効になっている場合に、ここで指定したサイト
# からのみ、このCGIが動作するようになります。ここで指定したサイト
# 以外からは、このCGIが使えません。
# ここで指定したサイトの配下のページでは、すべてこのCGIを使うことが
# できます。
# たとえば、あなたのサイトのURLが http://www.hoge.co.jp/foo/
# であれば、
# $YourSiteUrl = 'http://www.hoge.co.jp/foo';
# と指定します。
#----------------------------------------------------------------
$YourSiteUrl = 'http://www.hoge.co.jp/foo';

カウンター設置ページ(HTML)の編集

カウンターをつけたいページに、以下に説明するタグを埋め込む必要があります。

IDの指定

revocount.cgi の URL が

http://www.hoge.com/foo/revocount/revocount.cgi

だとします。カウンターを設置したいページに以下のタグを追加してください。

<img src="http://www.hoge.com/foo/revocount/revocount.cgi?id=top">

top」の部分は、ページを識別するIDです。このIDの名前は、何でもかまいませんが、半角アルファベットのみで指定してください。複数のページにカウンターを設置した場合には、別の名前を付与してください。同じ名前を指定すると、各ページのアクセス合計がカウンターに反映されてしまいますので、ご注意ください。

ここで指定したIDのカウント値データファイルは、ディレクトリ「data」の中に格納されます。そのファイル名は、IDに拡張子「.dat」を付け加えたものです。たとえば、IDが「top」の場合、データファイル名は、「top.dat」で保存されます。

IDの指定が無い場合には、ディレクトリ「data」内に、「default.dat」というファイルにカウンター値が格納されます。

ベースイメージ(ビットマップ)ファイルの指定

ベースとなるカウンターイメージ(ビットマップ)ファイルを指定することができます。ベースイメージのファイルは、ディレクトリ「base」内に存在している必要があります。ベースイメージのファイル名が「sample1.bmp」の場合には、以下のようにHTMLタグを記述してください。

<img src="http://www.hoge.com/foo/revocount/revocount.cgi?base=sample1.bmp">

指定が無い場合には、「default.bmp」が適応されます。

ID の指定とともに指定したい場合には、「&」で区切って記述してください。

<img src="http://www.hoge.com/foo/revocount/revocount.cgi?id=top&base=sample1.bmp">

このページや、トップページにも、本 CGI が組み込まれていますので、ご参考ください。

i-mode 指定

i-mode に対応するには、以下のように、CGI の URL の後ろに「?」を加えた後、「imode=1」を加えてください。

<img src="http://www.hoge.com/foo/revocount/revocount.cgi?imode=1">

他のオプションと組み合わせる場合には、それぞれを「&」で区切ってください。たとえば、IDが「top」で、ベースイメージファイルが「sample1.bmp」の場合には、以下のとおりです。

<img src="http://www.hoge.com/foo/revocount/revocount.cgi?id=top&base=sample1.bmp&imode=1">

ベースイメージのサンプル

本 CGI には、ベースイメージのサンプルがディレクトリ「base」内に同梱されていますので、どうぞご利用ください。ここで表示しているイメージは GIF ですので使えません。必ず同梱のビットマップファイルをご利用ください。

ファイル名 イメージ
default.bmp default
sample1.bmp sample1
sample2.bmp sample2
sample3.bmp sample3
sample4.bmp sample4
sample5.bmp sample5
sample6.bmp sample6
sample7.bmp(i-mode対応) sample7
sample8.bmp (i-mode対応) sample8
sample9.bmp (i-mode対応) sample9

制限事項

  • アニメーション GIF に対応していないブラウザーで見ると、一つ少ない数が表示されることとなります。
  • アニメーション GIF に対応していない i-mode 端末では、表示できません。
  • URL ガードをかけた場合、環境変数 HTTP_REFERER を返さないブラウザーでカウンターを表示できません。(i-mode 端末も同様)
  • Cookie によるカウントアップ防止機能を有効にしても、Cookie を受け付けなかった場合には、カウントアップしてしまいます。
  • アニメーションの時間指定は、あくまでも目安です。通信速度、クライアントのスペック等、さまざまな条件で、指定の時間でアニメーションを終了できない場合があります。

バージョンアップ履歴

Ver 1.3 から Ver 1.4 までの更新 -
  • クロスサイトスクリプティングによる脆弱性に対処。
Ver1.2 から Ver1.3 までの更新 -
  • 「Cookieによるカウントアップ防止機能」を ON にすると、複数の カウンターを設置している場合、すべてのカウンターでカウントアップが防止されてしまうバグを改修。
Ver1.1 から Ver1.2 までの更新 -
  • Internet Explorer 6 のプライバシー設定「中-高」「高」においても正しくCookieがセットされるよう、P3P(The Platform for Privacy Preferences)1.0 のCompact Policies に対応。前バージョンまでは、IE6でプライバシー設定が「高」の場合、IE6がCookieを受け付けないため、「Cookieによるカウントアップ防止機能」が機能しなかった。それをHTTPヘッダーにCompact Policiesを適応することで、回避した。
  • 「Cookieによるカウントアップ防止機能」がオフの場合、おもにNetscapeにおいて、一度アクセスしたカウンターイメージがキャッシュされ、再度ページを訪れた際にカウントアップすべきところがカウントアップされなかった。それをキャッシュされないように改善した。
Ver 1.0 から Ver 1.1 までの更新 -
  • 透明色指定において、小文字で指定しないと反映されなかったバグを改修。
  • 設定スクリプトのファイル名を「revoconfig.pl」から「revoconfig.cgi」に変更