

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」というカウントが記録されるのです。
このまま、レンタルしているサーバーにアップし、確認するのは、暴走があるかもととても不安な為、相談させていただきました。
皆さんのアドバイスを下さい。
プログラム等の情報は、随時補足します。よろしくお願い致します。

No.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で処理されたデータを元に表示画像を作成すれば、現在のアクセス数のイメージになるでしょう。
hrm_mmmさん、ありがとうございます。
もう少しじっくり見てみます。
また、お聞きするかもしれませんが、その際はアドバイスよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
Excelのグラフがちらつい...
-
Listviewのデータを上から順番...
-
DataGridViewで表示に制限をつ...
-
.NET SqlDataReader のレコー...
-
VB.NETで DataRow()を利用して...
-
【Excel VBA】指定行以降をクリ...
-
VBAでActiveDirectoryのユーザ...
-
エクセルVBAで範囲内での位置取...
-
i=cells(Rows.Count, 1)とi=cel...
-
VB.NETでコンボボックスの1行目...
-
Excelで指定した日付から過去の...
-
VBSでエクセル内の行数を取得す...
-
配列がとびとびである場合の書き方
-
秒以下は取得できないですか?
-
テキストボックスのvalueとtext...
-
EXCELで変数をペーストしたい
-
Accessのクエリで、replace関数...
-
特定のセルが空白だったら、そ...
-
ListView 項目の選択/選択解除...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGrdViewに関連付けたデータ...
-
【Excel VBA】先頭の「0」飛び...
-
Listviewのデータを上から順番...
-
VB.net CrystalReportでプロジ...
-
.NET SqlDataReader のレコー...
-
GridViewにバインドせずにデー...
-
DataGridViewで表示に制限をつ...
-
GASでスプレッドシートの一番上...
-
C# データ配列から画像を作成す...
-
VBA ピボットテーブル自動更新
-
MSFlexGridのデータ表示位置の設定
-
JSPとサーブレットを使用した勤...
-
VBAでページ番号、ページ最終行...
-
【ASP.NET MVC】一覧編集画面
-
スプレッドシート 一括でQRコー...
-
ListViewで条件によって表示を...
-
C# ニコニコ動画API getthumbinfo
-
VBAで表に1つでも入ってたら取...
-
ACCESSのVBAで[Split]について
-
Q横並びデータを縦並びに変更
おすすめ情報