我正在我的网站上做投票系统。
访客无需登录即可投票支持他们喜欢的产品。但是,如何防止他们多次点击一个产品的喜欢或不喜欢按钮?
我打算检测访问者的IP地址,以避免投票垃圾邮件。这是一个好方法吗?
感谢您的任何建议!
答案 0 :(得分:4)
不,这不是一个好方法。 IP可以通过代理来实现 - 例如大学和大型企业。
您可以存储Cookie,但这很容易被规避。
简明扼要的答案是,控制投票应该通过登录处理程序处理,而不仅仅是对公众开放。但是,如果你确实想让它对公众开放,那么你必须接受这个决定可能带来的大量不良。
我至少会使用cookies。除非有正当理由,否则很多人都不会只是为了游戏投票系统而清除cookie。
答案 1 :(得分:1)
为记录用户创建数据库表。 Colums看起来像那样
ID | IP | Browser
ID将是自动递增值
使用以下功能获取IP(当然,这不是100%可靠的方式。)
function getIP() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) { //check ip from share internet
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { //to check ip is pass from proxy
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
使用Javascript浏览器。你可以通过ajax发布到php端。 (我们这样做是为了提高检测的可靠性。)
每当用户尝试投票时,请检查此表。您可以搜索浏览器和IP。如果num_rows> 0,则阻止(通知访问者)投票。
答案 2 :(得分:1)
如果不是登录/ IP,可能有一个cookie并在投票时设置它。