アクセスカウンタを更新 → 失敗

  • 投稿日:
  • by
  • カテゴリ:

年が明けてからだったか、その前からか定かではありませんが、当blogに設置しているアクセスカウンタの表示がおかしくなっていました。

どういう事象かというと、カウンタの左端の数字が表示されないというものです。 たとえばこんな感じです。

counter01.jpg

本来はこうなっていなければなりません。

counter02.jpg

常に左端の桁が見えないわけではなくて、リロードすると見えることもあります。 また、会社のPCでは問題なく表示されます。
CGIや表示のためのコードは変えていませんし、サーバー側の問題ではないように思いました。 Webサーバーをイチから構築し直しても同じでした。
デスクトップPCのWindows Xpを入れなおしても、状況は変わりませんでした。


このアクセスカウンタは、blogを始める前から使っているものです(もちろんカウントした数字は、blogの分だけですが)。
画像でカウンタを表示するタイプなのですが、テキスト表示の方がいいようにも思います。 そこでググッてみたら、以下の記事を見つけました。

今日のMovable Type:CGI・SSIどちらでも使えるテキストカウンター: 世界中の1%の人々へ

以前からSSI対応のテキストカウンターを利用していのだが、XREA.COMにサーバーを移転して使えなくなったので、代わりを探していたら、Text Counter Ver.1.10というテキストカウンターを見つけた。
 
作者のTheRoom・夢さんは、主にi-mode用のホームページで使われることを考えて作ったそうで、CGI・SSI共に対応している。シンプルな構造なのに、とてもよく出来ているから、Movable Typeに限定することなく、携帯サイトにカウンターを考えている方や、シンプルなカウンターをつけたい方にお勧めしたい。

このThe Roomというのは、ウチで使っているカウンタCGIの作者です。 テキストカウンタがあるなら話は早いと、The Roomにアクセスしてみると無情の「403」。 どうやら移転してしまったようです。
再度ググッて、移転先を見つけました。


自分が使っているのは Day Counter Ver.1.21 なので、近そうな Text Day Counter Ver.1.10 を選びます。 SSI版とCGI版があるのですが、とりあえずSSI版を選びました。

設置は簡単で、試してみるとちゃんと動いているようです。 ただ問題は、リロードするとカウントされてしまいます。 重複カウント禁止機能があるハズなんですが、機能していないようです。
そこでCGI版をダウンロードしてみると、こちらはソースの中に重複カウントを禁止するかどうかの設定があります。 実はSSI版では重複カウント禁止機能は働かないみたいです。
ただCGI版であっても、ブラウザでそのCGIを直接叩く場合は重複カウントされないのですが、<!--#exec cgi="~" --> で実行すると重複カウントされてしまいます。


そこで、SSIでも重複カウントされないテキストカウンタを探したところ、GROOWEB の textCounter ver:3.00 というのを見つけました。 動作確認して、これなら良さそうということで昨夜設置して寝ました。

今朝起きて確認してみると、やたらとカウントが増えています(0時~7時で1300くらい)。 オカシイなと確認すすると、一回リロードすると3カウントされるようになってました。 orz
コトここに至っては、諦めるよりほかありません。 それで、元のカウンタに戻したのでした。


失意のなか、Day Counter のCGIファイルを眺めていると、数字の描かれた画像ファイルを連結するのに、 gifcat.pl というプログラムが使われていました。 これは「とほほのWWW入門」で有名な杜甫々氏によるGIFファイル連結Perlライブラリです。
「もしかして」と調べてみると、Day Counter に使われているバージョン(Ver.1.55)より新しい Ver.1.61 がありました。 その Readme.txt には、

制限事項
  ・アニメGIF同士を連結することはできません。
  ・アニメGIF対応のブラウザでなければ、最初の画像しか表示されません。
  ・高さの異なるGIFファイルは連結できません。
  ・Netscape 6.* では、一番最初の桁がうまく表示できないことがあり ます。
   → 一番最初の画像の大きさが全体と異なる場合に表示がおか しくなるという、ブラウザ側のバグが原因だと推測しています。
   → Ver1.61で、Netscape 6.*のバグ回避のコードを入れました。

と書いてあります。
さっそく置き換えてみると... ビンゴ!!! ちゃんと左端の桁が表示されるようになりました。
あーつかれた。 でもよかったです。