Голосовать только один раз в опросе - PullRequest
2 голосов
/ 24 февраля 2012

Я работаю над плагином под названием Poll-lite. Я хочу, чтобы пользователь голосовал только один раз за опрос, и я делаю это, получая IP-адрес. У меня есть следующий код.

$ip = $_SERVER['REMOTE_ADDR'];
$thequery = "SELECT COUNT(*) AS total FROM `$pollresult_table_name` WHERE ip = ".$ip;
$res = $wpdb->get_results( $thequery );

if ( $res[0]->total > 0 ) {
    $personip = $res[0]->total;
    echo "You may vote only once in 24 hours";
} else {
    $query = "INSERT INTO `$pollresult_table_name` VALUES(NULL, '$id', '".$_POST['merlic_poll_vote']."', NULL, '".$ip."', NOW())";
    $wpdb->query($query);
}

Что он делает, так это то, что он получает IP-адрес и проверяет в базе данных, будет ли этот IP-адрес уже там, если он уже есть, он вернет «уже проголосовали», но если его еще нет, то он вставит ответы пользователя в базе данных вместе с его IP, чтобы в следующий раз тот же пользователь голосовал, он больше не может голосовать, потому что IP уже зарегистрирован в базе данных. Моя проблема в том, что он не читает мое состояние в моем if-else. Что могло пойти не так?

1 Ответ

0 голосов
/ 25 февраля 2012

". $ Ip;

, не должно ли это быть = '". $ Ip. "'

также использовать $ row = mysql_num_rows ($ result); для проверки количества строквозвращено вашим запросом mysql. больше нуля означает, что совпадение найдено, иначе нет.

if($rows>0)
 {
  do condition
  }
else
  {
   }
...