使用 cookie 限制同一页面上多个内容的投票
Limit voting with cookie for multiple content on same page
我在网站主页上有一组内容,就像 reddit 一样,我在网站上没有用户注册功能。我不打算买一个。我的目标是限制人们为相同的内容投票不止一个。我打算用数据库和 cookie 上的 IP 来检查这个。我的饼干有问题...
这是我的代码
<?php
$ContentID = intval( $_POST['id'] );
$uniqueID = 'Ju?hG&F0yh9?=/6*GVfd-d8u6f86hp'.$ContentID;
setcookie ('voter', $uniqueID,time()+3600*24, '/', DOMAIN);
if ( $_COOKIE['voter'] == $uniqueID ) {
echo json_encode(array('success'=>'false', 'message'=>'Just one for same post.'));
}else{
echo json_encode(array('success'=>'false', 'message'=>'voted'));
}
?>
这里的问题是它只限制了一个内容,但我可以对其他内容进行投票。我怎样才能防止这种情况发生?
谢谢。
此代码实际上将仅为给定的内容 ID 设置一个名为 voter
的 cookie。对另一个 post 进行投票将有效,但旧信息将被删除。
如果您正在使用数据库并且不想让用户注册,您可以只存储 IP-POST_ID 对并在服务器端检查。到那时,除了存储偏好或其他东西外,不需要对 cookie 做任何事情。
如您所知(或可能不知道),这也意味着来自给定 IP 的只有一个用户可以投票,这意味着公司网络等最有可能被视为一个用户,即使有数百人工作(并可能投票)。
我在网站主页上有一组内容,就像 reddit 一样,我在网站上没有用户注册功能。我不打算买一个。我的目标是限制人们为相同的内容投票不止一个。我打算用数据库和 cookie 上的 IP 来检查这个。我的饼干有问题...
这是我的代码
<?php
$ContentID = intval( $_POST['id'] );
$uniqueID = 'Ju?hG&F0yh9?=/6*GVfd-d8u6f86hp'.$ContentID;
setcookie ('voter', $uniqueID,time()+3600*24, '/', DOMAIN);
if ( $_COOKIE['voter'] == $uniqueID ) {
echo json_encode(array('success'=>'false', 'message'=>'Just one for same post.'));
}else{
echo json_encode(array('success'=>'false', 'message'=>'voted'));
}
?>
这里的问题是它只限制了一个内容,但我可以对其他内容进行投票。我怎样才能防止这种情况发生?
谢谢。
此代码实际上将仅为给定的内容 ID 设置一个名为 voter
的 cookie。对另一个 post 进行投票将有效,但旧信息将被删除。
如果您正在使用数据库并且不想让用户注册,您可以只存储 IP-POST_ID 对并在服务器端检查。到那时,除了存储偏好或其他东西外,不需要对 cookie 做任何事情。
如您所知(或可能不知道),这也意味着来自给定 IP 的只有一个用户可以投票,这意味着公司网络等最有可能被视为一个用户,即使有数百人工作(并可能投票)。