2011-01-23 4 views
2

私は単純な親指のアップ/ダウン評価システムを作成しています。ユーザーは単に上または下をクリックすることができ、サムのアップ/ダウンの総数はdbに格納されます。私はユーザーが複数回投票できるようにしたくありませんしかし、私はそれがかなり混乱すると思うので、すでに投票しているかどうかをチェックするユーザーのIPアドレスまたはユーザー名を保存したくありませんデータベース。私はいくつかの代替的なアプローチ(例えば、ユーザ名とアイテム名をクッキーに保存して、それが少なくともある程度の間は防ぐことができるのであれば混乱しています) 保存している場合は教えてください(username、item-id )DBに良い方法であるか、ブラウザのクッキーに保存する?ありがとう。評価システム:usernameまたはipをdbまたはcookieに保存していますか?

+1

クッキーを編集することができます –

+0

ええ、私はちょうどユーザーが(迷惑メールを防ぐために)再度投票するのを止めるためにcookieにitemIDとusernameを保存したいと思います。私はクッキーが洗うことができると理解していますが、それは少し助けることができますか?それとも悪いアプローチですか? – Lucka

+0

サーバー側のCookieを使用する必要があります – liamzebedee

答えて

-1

データベースは、一般的にはより安全になります。

3

同じユーザーからの複数の票を防ぎたいなら、あなたは自分を格納するしかありませんサーバー上の投票状態を編集することができます。

ユーザーがアカウントを持っていることを示すusernameを参照してください。そうであれば、アイテムIDとu ser IDをテーブルに格納し、これを使用して後続の投票をブロックしたり、投票オプションを隠したり、ユーザーの現在の投票ステータスを表示することができます。

ユーザーがアカウントを持っていない場合は、IPアドレスを保存するだけで済みます。しかし、IPは一人の人/ PCを一意に識別しないことに言及する価値があります。たとえば、私のオフィスからネットをサーフィンしている1000人以上の人は、同じインターネットに直面しているIPアドレスを使用します。

0

クッキーを簡単に絞り込む/編集するには、この目的のためにデータベースを使用し、各ユーザーに投票をさせる前にログインさせる必要があります。 (これはあなたがすでに「ユーザー名」という用語を使用しているようにしているように思えます。)悲しいことに、IPアドレスは最近、信頼性の高い方法でユーザーを一意に識別するためにあまり利用されていません。

さらに、データベースの "votes"テーブルスキーマには、各 "親"オブジェクトに1人のユーザーしか投票できないようにするためのUNIQUE KEYが必要です。

関連する問題