2011-08-13 4 views
1

私は自分のWebアプリケーションのユーザーが投票する前にユーザーアカウントを登録する必要がないようにしたいと思います。私は自由に投票できるウェブサイトを見たことがあります。これはどのように処理されますか?同じ人物が無限に投票するのを防ぐにはどうすればいいですか?匿名ユーザー入力をどのように処理すればよいですか?

私はPythonとDjangoを使用しています。私はFacebookのログインを実装しようと思っていますが、私は専門家のコメントの一部を聞きたいと思います。私は最も役に立つ答えを正しいものとしてマークします。

+0

イムを、ちょうどIPアドレスを追跡し、各IPのための1票を許可するように示唆:代わり票の彼らは、コメントを扱っています – Jaanus

答えて

2

facebookのないユーザーは投票できないため、Facebookのログインには依存しないでください。

登録されていないユーザーが2度投票しないようにするための実際の方法はありません(別のコンピュータなどから自分自身と接続することができます)ので、自分の身元を確認する基準身元。

あなたの問題を解決する方法はさまざまですが、それらはすべて投票したユーザーに関する情報を保存することに依存しています。あなたは、あなたのユーザーが既に投票したかどうかを知るために、IPアドレスに頼ったり、セッションやクッキーに情報を保存することができます。

1

私は彼らが投票したかどうかを教えてくれるセッション変数を作成します。実際、ユーザーはCookieをクリアして2回投票することができますが、それは最悪のケースです。あなたが登録せずに投票させるなら、私は投票を推測していますがあまり科学的ではありません。

Djangoには、セッションの使い方に関するウェブサイトの良い例がいくつかあります。

https://docs.djangoproject.com/en/dev/topics/http/sessions/#examples

特にこの1つはあなたに助けになるはずです。ジャンゴに精通していない

def post_comment(request, new_comment): 
    if request.session.get('has_commented', False): 
     return HttpResponse("You've already commented.") 
    c = comments.Comment(comment=new_comment) 
    c.save() 
    request.session['has_commented'] = True 
    return HttpResponse('Thanks for your comment!') 
関連する問題