我已经设置了一个轮询系统,当您投票时,它会使用以下方式存储您的外部IP:
$_SERVER['REMOTE_ADDR'];
它将其存储在名为IPlist的数据库中。 它还设置了一个cookie。 在轮询页面中,如果设置了cookie或者mysql_num_rows的数量大于1,则禁用单选框。 这是为了防止重新投票。
但是有些计算机具有相同的外部IP。这些可以像我学校一样数百个。如果我在一台电脑上投票,没有人可以再次在我的学校投票。
有没有办法解决这个问题。例如,要查找网络中的计算机数,请更改mysql_num_rows。或者在每台计算机上找到一个唯一的常量变量来存储在数据库中。
感谢。
答案 0 :(得分:4)
根本没有办法事先知道给定IP地址背后有多少设备......事实上,事情比你对AOL用户的想象要糟糕得多(在给定的IP后面可能有数万台计算机)地址(AOL代理)。
如果你不太担心保证结果,你可以放弃一个cookie。否则,正如评论者所建议的那样,登录系统是一种很好的标准方法。
答案 1 :(得分:2)
没有100%的方法来确保一个人进行多次投票。你能做的最好的事情就是让它变得困难。将其与电子邮件地址绑定并使用 catcha 之类的内容来确保非自动投票。可以触发需要回复确认投票的电子邮件。