Php 网站。VoteUp或VoteDown视频。如何限制用户多次投票?
我在一个网站上工作(html、css、javascript、ajax、php、mysql),我想限制特定用户对特定视频的投票次数 它类似于YouTube系统,在那里你可以voteUp或voteDown一个特定的视频 每次投票都需要在video.voces表中添加一行,该表记录时间、投票方向(向上或向下)、客户端ip地址(使用PHP:$ip=$\u SERVER['REMOTE\u ADDR'];),当然还有相关视频的ID 增加选票就这么简单;(伪代码):Javascript:onClick(投票(a,b,c,d)),它通过ajax将变量传递给PHP插入脚本,最后我们用“感谢投票”消息替换投票按钮 问题是: 如果你在投票后重新加载/刷新页面,你可以一次又一次地投票,你就明白了 我的问题: 如何限制特定用户对特定视频的投票次数 我的想法: 您是否使用cookie,并添加一个带有视频id的新cookie。并在插入新投票前检查cookie 或 在插入投票之前,您是否使用IPaddress和videoID查看同一用户(IP)是否在过去24小时(mktime)内为同一视频(vidID)投票,以及是否基于此查询允许或取消允许voteInsertion 或 你不在乎吗?假设大多数用户都是理智的,他们有比刷新页面和反复投票更好的事情要做Php 网站。VoteUp或VoteDown视频。如何限制用户多次投票?,php,javascript,mysql,ajax,Php,Javascript,Mysql,Ajax,我在一个网站上工作(html、css、javascript、ajax、php、mysql),我想限制特定用户对特定视频的投票次数 它类似于YouTube系统,在那里你可以voteUp或voteDown一个特定的视频 每次投票都需要在video.voces表中添加一行,该表记录时间、投票方向(向上或向下)、客户端ip地址(使用PHP:$ip=$\u SERVER['REMOTE\u ADDR'];),当然还有相关视频的ID 增加选票就这么简单;(伪代码):Javascript:onClick(投票
欢迎提出任何建议或想法 如果你真的不在乎,特别是4chan效应,你可以用一块饼干。不要使用IP地址,因为在普通NAT路由器后面到处都是人
如果你再关心一点,你就必须对人进行身份验证,但是如果没有某种外部标记来识别实际的个人,你仍然会遇到问题。当然,这取决于你网站的性质。例如,家庭银行网站可以更自信地支持投票,因为它可以用实际账号识别用户。我会使用cookie方法。它允许识别唯一的用户(对于那些接受cookies的用户),而IP是一种糟糕的方法,因为许多用户可以共享相同的IP地址
<>如果站点使用登录,也许你可以考虑只允许登录用户投票的选项。在这种情况下,很容易知道用户是否已经投票,但限制性很强。也许最好的建议是让注册用户投票。这样你就可以查询
,其中user\u id='x'和video\u id='y'
,如果找到记录,就不要让他投票
唉,对于匿名用户来说,这可能很棘手。许多IP地址在网络上共享,因此同一大楼中的用户可能只需投票一次。cookies选项可能很好,但它们可以被擦除。你就是不能相信用户方面的任何东西 您是否使用cookie,并添加一个带有视频id的新cookie。并在插入新投票前检查cookie Cookie可以很容易地禁用或很快地清除。将投票保存到cookie是不可靠的,投票可以毫无问题地进行游戏 在插入投票之前,您是否使用IPaddress和videoID查看同一用户(IP)是否在过去24小时(mktime)内为同一视频(vidID)投票,以及是否基于此查询允许或取消允许voteInsertion 许多用户可能使用相同的路由器,实际上拥有相同的IP。通过这样做,您可能会阻止用户投票,从而激怒用户,因为来自同一办公室/家庭的另一个人在发送链接之前已经对视频进行了投票 你不在乎吗?假设大多数用户都是理智的,他们有比刷新页面和反复投票更好的事情要做 这完全是主观的,取决于投票的重要性。如果投票是网站的一个重要组成部分,那么最好尽可能多地关注它。例如,如果视频按最高评分排序,一些用户可以多次投票以提高其个人/喜爱视频的受欢迎程度,从而给人以受欢迎程度的印象以吸引更多的观看
如果投票很重要,最好只允许注册用户投票。当然,人们可以而且会让多个帐户投票(例如,请参阅),但你让他们更难投票。如果投票不是很重要,我会选择cookie选项。如果你真的试图阻止多次投票:
如果你真的不在乎,就用饼干吧。是的,我尽量避免多人投票,因为videoX的拥有者可以大大提高它的知名度。我可能需要注册和登录才能投票或在视频上留言。非常感谢各位……你们打算怎么做才能防止同一个人注册不止一次?@Pointy:即使是谷歌、YouTube、微软和eBay都有这样的问题。他们仍然使用类似的评级系统(eBay的反馈)。无论你怎么看,你都无法阻止一个真正想要不止一次投票的用户。即使以你的银行账户为例,欺诈性的银行账户也一直存在。哦,是的,我理解。就像我在自己的回答中所写的那样,除非你有了真正的工作(比如银行账户或信用卡号码),否则情况不会变得更好。显然,这不是一个选择。