2

私のアプリケーションでは、スタックオーバーフローが投稿された質問と回答に対して持っているように、他のユーザーが上下に投票して応答できる記事を投稿できます。

2 回投票できないようにユーザーを制限するにはどうすればよいですか?

4

4 に答える 4

6

ユーザーIDを投票テーブルに保存するだけです。
したがって、特定のユーザーがすでに投票したかどうかをいつでも確認できます。
article-id、user-id、vote time、votevalueの列で十分です

于 2010-08-08T07:04:59.830 に答える
4

2つの方法:

  • クライアント側:Cookie(最後の5または10票の記事ID)に設定し、再度投票することを許可しません。これは簡単にハッキングできますが、データベースを変更せずに実装できます。
  • サーバー側:すべての投票を追跡し、次のようなテーブルで投票します<{userID}, {vote UP/DOWN}, {articleID}>

StackOverflowは、データベースを使用してこのすべてのデータを保存します。彼らはまた、あなたがあなたの行動を元に戻すことができないように、一定期間後にあなたの投票をロックします。

于 2010-08-08T07:06:36.847 に答える
2

そのための最善の方法は、すべての投票とユーザーIDをデータベースに保存することだと思います。データベースが大きくなった場合は、1週間/月などの後にデータベースから古いレコードを削除し、1週間より古いアイテムへの投票を制限できます。 / month / etcであるため、同じアイテムに2回投票することはできません。

于 2010-08-08T07:10:42.437 に答える
1

IPまたはその他の一意のデータでユーザーを記憶するには、何らかのサーバー側スクリプトを使用する必要があります。IPまたはその他のデータを保存して覚えておく必要があります。ユーザーが再度賛成/反対投票を試みる場合は、それをチェックして、許可する必要があるかどうかを確認する必要があります。ただし、投票を変更したい場合に備えて、反対のことをさせる必要があります。これは、PHPとMySQL(および他の多くのもの)で実行できます。

于 2010-08-08T07:03:04.047 に答える