- 締切済み
<img src=".php?id=id">をカウントしないようにしたい
PHPでクリックされた回数をカウントしているのですが <?php $id=$_GET["id"]; カウント読み込み処理 カウント加算処理 header("Location: url"); ?> もし不正に<img src="http://hoge/count.php?id=id"> とした場合、クリックした回数ではなく 表示された回数をカウントされてしまいます。 <img src="http://hoge/count.php?id=id"> とした場合はカウントしない方法はありますか? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mpx
- ベストアンサー率71% (149/209)
http://hoge/count.php?id=id にて GETリクエストが来た時に、カウンタするのではなく 本物のカウンタスクリプトをコールするjavascriptを 応答するようにしては如何ですか? 本当のクリックならばjavascriptが動きますし イメージとしてリクエストされれば、javascriptが動かないので 本物のカウンタは動きません。 さらに直接本物をリクエストされないようにセッション管理も 組み合わせておく必要が有るでしょうが。
- BellBell
- ベストアンサー率54% (327/598)
すべてが自サイト内の話なら、Referer使って呼び出し元が他サイトではないことを確認するとか。 もしくは、クッキーを使って同一ユーザー(閲覧者)の複数クリックを無視するとか。一定時間以内のものは無視するとか。 クリック(カウンター呼び出し)のすべてのログを時間と共に保存しておいて、クリック感覚の短いものが多くあれば怪しいと、統計的に判断(あとから人間の目で)して無効にするか。 なんとなくバナー広告システムの気がしますけど(違うかな?)、そうだとするとありとあらゆる防護措置を入れた上で、ログを取ってあとから人間の目で判断することは必須ですね。 他には、同一IPアドレスからの連続したクリックは無効とか、海外IPアドレスからは無効(海外プロキシ対策)とか、ブラウザ以外(ロボットなど)は無効、などですかね。