重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Kent Webさんのe-Counter v1.3を借りて、少し手を加えてアクセスログを残せるようにいます。

まだ、ローカルパソコン上でのみの確認なのですが、2重カウント防止の動作がどうも少々おかしいのです。
動作確認には、『AN HTTP Daemon 1.42k』を使い、間違っていると思いますが、localhostのIP【A】とそのIPを少し変えたIP【B】で確認しています。(IPアドレスを【A】と【B】に略しました。)
(http://【B】/test1.htmlでもちゃんと表示される為。)

どうなるかというと、【A】で動作させ、カウンタが「5」と表示されたとします。【B】に変え、移動ボタンまたはEnteで移動させると、カウンタは「5」のまま。
しかし、その後更新ボタンを押すと、「6」になり、再び更新ボタンを押してもカウントアップはされません。
【B】から【A】へという逆の場合も同様です。
自分が作った、アクセスログには、更新ボタンを押す前のカウントで記録されています。
「5」→更新→「6」の場合、「5」というカウントが記録されるのです。

このまま、レンタルしているサーバーにアップし、確認するのは、暴走があるかもととても不安な為、相談させていただきました。
皆さんのアドバイスを下さい。
プログラム等の情報は、随時補足します。よろしくお願い致します。

A 回答 (1件)

ログデータと表示の違いは、スクリプトの作りによります。


このカウンタの場合はちゃんと動作していると思いますよ。

スクリプトを順をおって見ていくと解ります。

A 1回目
1.ログの最終行取得
2.前回最終記録データをカウント表示用とする
 現在表示=前回記録データ
3.IPアドレスチェック
 別ならカウントアップして記録

Bリロードする
1.ログの最終行取得
2.前回最終記録データをカウント表示用とする
 現在表示=前回記録データ=1回目にカウントアップしたデータ
3.IPアドレスチェック
 同じなので記録しない

C再リロード
1.ログの最終行取得
2.前回最終記録データをカウント表示用とする
 現在表示=最終記録データ=1回目に記録したデータ
3.IPアドレスチェック
 同じなので記録しない

D IPアドレスを変えてアクセス
1.ログの最終行取得
2.前回最終記録データをカウント表示用とする
 現在表示=最終記録データ=Aで記録したデータ
3.IPアドレスチェック
 別ならカウントアップして記録

Eリロードする
1.ログの最終行取得
2.前回最終記録データをカウント表示用とする
 現在表示=前回記録データ=Dでカウントアップしたデータ
3.IPアドレスチェック
 同じなので記録しない

というように、現在のアクセス数というよりは、前回までのアクセス数表示になっているからです。

改造するなら、3で処理されたデータを元に表示画像を作成すれば、現在のアクセス数のイメージになるでしょう。
    • good
    • 0
この回答へのお礼

hrm_mmmさん、ありがとうございます。
もう少しじっくり見てみます。
また、お聞きするかもしれませんが、その際はアドバイスよろしくお願いします。

お礼日時:2005/09/25 19:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!