我有基于IP的投票代码,但问题是当我从我的电脑投票(使用相同的网络连接到互联网)时,我无法做到!
以下是代码:
global $wpdb;
$post_ID = $_POST['id'];
$ip = $_SERVER['REMOTE_ADDR'];
$irt_textOnclick = get_option('irt_textOnclick');
$recommend = get_post_meta($post_ID, '_recommended', true);
if($post_ID != '') {
$voteStatusByIp = $wpdb->get_var("SELECT COUNT(*) FROM ".$wpdb->prefix."irecommendthis_votes WHERE post_id = '$post_ID' AND ip = '$ip'");
if (!isset($_COOKIE['recommended-'.$post_ID]) && $voteStatusByIp == 0) {
$recommendNew = $recommend + 1;
update_post_meta($post_ID, '_recommended', $recommendNew);
setcookie('recommended-'.$post_ID, time(), time()+3600*24*365, '/');
$wpdb->query("INSERT INTO ".$wpdb->prefix."irecommendthis_votes VALUES ('', NOW(), '$post_ID', '$ip')");
$return_text = $recommendNew . ' ' . $irt_textOnclick;
echo $return_text; //$recommendNew; //
}
else {
$return_text = $recommend . ' ' . $irt_textOnclick;
echo $return_text; //$recommendNew; //
}
}
答案 0 :(得分:1)
如果您同时使用Cookie和IP检查以防止多次投票,则对于共享相同IP地址的计算机,投票不能超过一次。这将阻止同一网络中的其他用户进行投票,因为您将被视为拥有一个IP地址。