0

私は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; //  
    }
}
4

1 に答える 1

1

複数の投票を防ぐために Cookie と IP チェックの両方を使用している場合、同じ IP アドレスを共有するコンピューターに対して複数回投票を行うことはできません。1 つの IP アドレスを持っていると見なされるため、同じネットワーク内の他のユーザーが投票できなくなります。

于 2012-05-27T04:51:51.610 に答える