2010-11-28 6 views
2

私は自分のサイトに多数の投票をしており、何度も投票を繰り返さないようにしたい。私が知る限り、訪問者のIPログを保存するか、またはCookieを保存することができます。私はmySQLデータベースにIPログを使用しようとしましたが、1つの問題があります。ルータの背後にいるすべての訪問者は同じ外部IPを持っています。複数のバイナリ値をクッキーに保存する

これで、より良いソリューションがない限り、クッキーを使用するようにコードを切り替えています。最終的には何百、何千もの世論調査が行われ、20のクッキー制限があると思うので、どのように投票ごとに値を保存することができますか?値はバイナリ値でもかまいません。たとえば、まだ投票されていない場合はpoll1 = 0、投票された場合はpoll1 = 1です。

また、役立つ場合、各ポーリングはすぐにjqueryを使用して結果を表示します。私はjqueryの共振でクッキーを設定/変更できると仮定しています。

アイデア?ありがとう! (btw、私はクッキーが削除されることを認識します)

+0

最後の文は、全体的な質問を無意味にします。 –

+0

ユーザーは匿名ユーザーを参照していますか?または? – ajreal

+0

Shrapnel:投票は、複数の投票を完全に防止するほど重要ではありません。ユーザーがクッキーを無効にする、またはクッキーを削除するという手間を掛けたい場合は、複数回投票させます。 ajreal:私はユーザーが匿名で滞在することをお勧めします。ログインや登録は不要です – Cody

答えて

1

何百もの投票があるかもしれませんが、各ユーザーがそれらのうちのいくつかに投票することを期待するのは妥当です。したがって、ユーザーが投票した投票IDのコンマ区切りのリストを持つ単一のCookieを持つことができます。

もちろん、クッキーは削除や改ざんが可能なため、いかなる保護も提供していませんが、これらの情報を格納する唯一の実用的な方法でもあり、ほとんどの場合うまく機能します。

+0

おそらく、ログに記録されたIPとCookieの両方を組み合わせて使用​​していますか? – Anders

+0

ありがとう、カカブランカ、ちょうどうまくいくかもしれません。投票された投票数をカンマ区切りにして、14,238,728,235,38,382などとすることができます.4KBのクッキー制限を超えた場合、どうなるか分かりますか? – Cody

+0

@Cody:私は限界で何が起こるか分かりません。ブラウザに依存していると思います。しかし、もう一度、500-1000の値を4KBに簡単に保存することができます。また、単一のユーザーが多数の投票で投票することはほとんどありません。 – casablanca

2

ユーザーごとに制限する必要がある場合は、ユーザーIDを実装する必要があります。つまり、ユーザー登録、ログイン、セッション管理が必要です。一度それがあれば、それは全く困難ではありません。ユーザが投票し、すでに投票したかどうかを判断するためにチェックしたときに作成された参加記録を使って、あなたのユーザレコードと投票記録の多対多関係を実装するだけです。

実際にユーザーを識別する方法を実装せずにユーザーのアクティビティに制限を適用しようとすると、うまく機能しません。

+0

投票は重複投票を100%制限するほど重要ではありません。私は、通常の状況下でユーザーのための小さな予防システムを1回だけ投票できるようにしたかっただけです。ユーザーがウェブサイトにアカウントを登録する必要はありませんでした。このようにしても、ユーザーが努力を重ねると重複して投票することができます。 – Cody

関連する問題