我的网站上有很多民意调查,我想阻止用户多次重新投票。据我所知,我可以保留访问者的IP日志,也可以存储cookie。我尝试将IP日志用于mySQL数据库,但是有一个问题:路由器后面的所有访问者都拥有相同的外部IP,因此路由器后面只有一个人可以对某个民意调查进行投票。
所以现在我将我的代码转换为使用cookie,除非有更好的解决方案。由于最终将有数百或数千个民意调查,并且我认为有20个cookie限制,我如何为每个民意调查存储值?值可以只是二进制值,例如,如果尚未投票,则poll1 = 0,如果投票,则poll1 = 1。
此外,如果有帮助,每个轮询会立即使用jquery显示结果。我假设我可以在jquery共鸣中设置/修改cookie。
有什么想法吗?谢谢! (顺便说一下,我意识到可以删除cookie)
答案 0 :(得分:2)
如果您真的想限制每个用户,则需要实现用户标识,这意味着您需要用户注册,登录和会话管理。一旦你拥有了它,这一点都不困难。只需在用户进行轮询时创建的连接记录实现用户记录和轮询记录之间的多对多关系,并检查它们是否已经采用它。
尝试在不实现真正识别用户的方式的情况下实施对用户活动的限制将永远无法正常运行。
答案 1 :(得分:1)
即使您可能有数百个民意调查,但有理由期望每个用户只会投票选出其中一些。因此,您只需拥有一个cookie,其中包含用户投票的逗号分隔的逗号ID列表。
当然,cookie不提供任何形式的保护,因为它们可以删除或篡改,但它们也是存储此类信息的唯一实用方法,并且在大多数情况下它们都能正常工作。