投票时只投票一次

时间:2012-02-24 06:39:18

标签: php ip wpdb

我正在开发一个名为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 :(得分:0)

” $ IP;

不应该是='“。$ ip。”'

也使用$ rows = mysql_num_rows($ result); 检查你的mysql查询返回的行数。 大于零表示找到匹配,否则为无。

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