2012-02-23 9 views
2

私のウェブサイトで投票システムを行っています。PHPサイトで投票迷惑メールを避けるにはどうすればいいですか

訪問者は、好きな商品に投票するためにログインする必要はありません。しかし、1つの製品で何度も好きなボタンや嫌なボタンをクリックするのを防ぐにはどうすればいいですか?

私は投票迷惑メールを避けるために訪問者のIPアドレスを検出するつもりです。それは良い方法ですか?

ありがとうございました!

+1

ログインせずに、IPアドレスは唯一の方法です。それでもプロキシを与えられた完全な証明ではない – Henesnarfel

+0

なぜdownvotes?非常に答えやすい質問のようです。私は何が欠けていますか? –

+0

同じ人物が何度も何度も投票するのを止める方法はありません。設計上の悪いプログラミングです。 「平均的な」ユーザーが投票を続けないようにするには多くの方法がありますが、「平均的な」ユーザーのためにプログラムするべきではありません。 – donutdan4114

答えて

4

これはいい方法ではありません。プロキシ・カレッジや大企業などでIPを共有することができます。

クッキーを保存することはできますが、簡単に回避することができます。

簡潔な答えは、制御された投票は、おそらく一般に公開されているだけでなく、ログインハンドラによって処理されるべきであるということです。しかし、あなたがそれを一般に広く公開しておきたいのであれば、その決定に来るかもしれない悪い洪水を受け入れる必要があります。

私は少なくともクッキーと一緒に行きます。理由がない限り、多くの人がクッキーをクリアして投票システムを試しているだけではありません。

+0

ありがとうKai Qing – JaclBlack

1

ユーザーを記録するためのデータベーステーブルを作成します。 Columsは

はJavascriptと

function getIP() { 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { //check ip from share internet 
     $ip = $_SERVER['HTTP_CLIENT_IP']; 
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { //to check ip is pass from proxy 
     $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } else { 
     $ip = $_SERVER['REMOTE_ADDR']; 
    } 
     return $ip; 
} 

とブラウザ(もちろん、それは100%の信頼性の高い方法ではありません。)次の関数でIPを取得IDが自動インクリメント値になります

ID | IP | Browser 

そのようになります。 。あなたはajax経由でPHP側に投稿することができます。

ユーザが投票しようとするたびにこの表をチェックしてください。ブラウザとipを検索することができます。 num_rows> 0の場合、投票(訪問者に通知)を防止します。

1

ログイン/ IPでない場合は、Cookieを持っていて、投票時に設定されている可能性があります。

+0

はい、私はIPの代わりにクッキーを使用します、助けてくれてありがとう – JaclBlack

関連する問題