投票应用程序,避免同一个人的多次投票

2024-05-15 03:16:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Django开发一个web应用程序,它涉及一些不同的投票。我显示了一个问题,后面是一些链接,用户单击他/她喜欢的链接。例如:

<p>Which one do you prefer?</p>
<a href="http://domain.com/polls/15/vote/1" >Option 1</a>
<a href="http://domain.com/polls/15/vote/2" >Option 2</a>
<a href="http://domain.com/polls/15/vote/3" >Option 3</a>
<a href="http://domain.com/polls/15/vote/4" >Option 4</a>

每个链接接受两个数字15,这两个数字代表投票数15,并按所选选项的投票数增加,例如1。在

问题来了,可能有些用户会开始刷新网页,像疯子一样选择他们的选项,在浏览器中输入链接http://domain.com/polls/15/vote/1多次投票。在

有没有办法避免这个问题?我是否应该将投票者的IP存储到数据库中x时间,以避免他们在x时间内多次投票?这对很多用户来说不是个问题吗?在

谢谢!在


Tags: django用户comhttp链接domain选项时间
1条回答
网友
1楼 · 发布于 2024-05-15 03:16:19

取决于你想走多远:

  • 使用POST方法通过ajax提交投票,这样就没有直接从浏览器访问的url
  • 为投票的人添加饼干
  • 添加验证码
  • Store IPs(here是关于如何有效地存储它们的一些建议,如果性能很关键,也可以使用Redis之类的东西,但是除非您正在构建一个全国性的投票系统,否则使用常规表可能就可以了)
  • 要求注册投票(通过电子邮件确认注册,使用facebook帐户注册,通过短信确认注册,等等)

另外,当你发现一个用户已经投票了,这可能是一个聪明的举动,只是默默地忽略他们的进一步投票,假装他们被接受,这样他们就不会再试图欺骗了。在

相关问题 更多 >

    热门问题