首页>>Jquery文字>>PHP实现顶和踩投票功能,有IP判断防止重复投票(2018-03-12)

PHP实现顶和踩投票功能,有IP判断防止重复投票

PHP实现顶和踩投票功能,有IP判断防止重复投票
赞赏支持
立刻微信赞赏支持 关闭

 

XML/HTML Code
  1. <div class="demo">  
  2.                 <div class="digg">   
  3.                     <div id="dig_up" class="digup">  
  4.                         <span id="num_up"><?php echo $like;?></span>  
  5.                         <p>很好,很强大!</p>  
  6.                         <div id="bar_up" class="bar"><span style="width:<?php echo $percent_like;?>%"></span><i><?php echo $percent_like;?>%</i></div>  
  7.                     </div>  
  8.                     <div id="dig_down" class="digdown">  
  9.                         <span id="num_down"><?php echo $unlike;?></span>  
  10.                         <p>太差劲了!</p>  
  11.                         <div id="bar_down" class="bar"><span style="width:<?php echo $percent_unlike;?>%"></span><i><?php echo $percent_unlike;?>%</i></div>  
  12.                     </div>  
  13.                     <div id="msg"></div>  
  14.                 </div>  
  15.             </div>  

 

JavaScript Code
  1. <script type="text/javascript">  
  2.             $(function() {  
  3.                 $("#dig_up").hover(function() {  
  4.                     $(this).addClass("digup_on");  
  5.                 }, function() {  
  6.                     $(this).removeClass("digup_on");  
  7.                 });  
  8.                 $("#dig_down").hover(function() {  
  9.                     $(this).addClass("digdown_on");  
  10.                 }, function() {  
  11.                     $(this).removeClass("digdown_on");  
  12.                 });  
  13.   
  14.                 getdata("ajax.php", 1);  
  15.   
  16.                 $("#dig_up").click(function() {  
  17.                     getdata("ajax.php?action=like", 1);  
  18.                 });  
  19.   
  20.                 $("#dig_down").click(function() {  
  21.                     getdata("ajax.php?action=unlike", 1);  
  22.                 });  
  23.             });  
  24.   
  25.             function getdata(url, sid) {  
  26.                 $.getJSON(url, {id: sid}, function(data) {  
  27.                     if (data.success == 1) {  
  28.                         $("#num_up").html(data.like);  
  29.                         $("#bar_up span").css("width", data.like_percent);  
  30.                         $("#bar_up i").html(data.like_percent);  
  31.                         $("#num_down").html(data.unlike);  
  32.                         $("#bar_down span").css("width", data.unlike_percent);  
  33.                         $("#bar_down i").html(data.unlike_percent);  
  34.                     } else {  
  35.                         $("#msg").html(data.msg).show().css({'opacity': 1, 'top''40px'}).animate({top: '-50px', opacity: 0}, "slow");  
  36.                     }  
  37.                 });  
  38.             }  
  39.         </script>  

 ajax.php

 

PHP Code
  1. require('../../conn.php');  
  2.   
  3. $action = $_GET['action'];  
  4. $id = 1;  
  5. $ip = get_client_ip();  
  6.   
  7. if ($action == 'like') {  
  8.     likes(1, $id$ip);  
  9. elseif ($action == 'unlike') {  
  10.     likes(0, $id$ip);  
  11. else {  
  12.     echo jsons($id);  
  13. }  
  14.   
  15. function likes($type$id$ip) {  
  16.     $ip_sql = mysql_query("select ip from votes_ip where vid='$id' and ip='$ip'");  
  17.     $count = mysql_num_rows($ip_sql);  
  18.     if ($count == 0) {//还没有顶过  
  19.         if ($type == 1) {//顶  
  20.             $sql = "update votes set likes=likes+1 where id=" . $id;  
  21.         } else {//踩  
  22.             $sql = "update votes set unlikes=unlikes+1 where id=" . $id;  
  23.         }  
  24.         mysql_query($sql);  
  25.   
  26.         $sql_in = "insert into votes_ip (vid,ip) values ('$id','$ip')";  
  27.         mysql_query($sql_in);  
  28.   
  29.         echo jsons($id);  
  30.     } else {  
  31.         $msg = $type == 1 ? '您已经顶过了' : '您已经踩过了';  
  32.         $arr['success'] = 0;  
  33.         $arr['msg'] = $msg;  
  34.         echo json_encode($arr);  
  35.     }  
  36. }  
  37.   
  38. function jsons($id) {  
  39.     $query = mysql_query("select * from votes where id=" . $id);  
  40.     $row = mysql_fetch_array($query);  
  41.     $like = $row['likes'];  
  42.     $unlike = $row['unlikes'];  
  43.     $arr['success'] = 1;  
  44.     $arr['like'] = $like;  
  45.     $arr['unlike'] = $unlike;  
  46.     $like_percent = round($like / ($like + $unlike), 3) * 100;  
  47.     $arr['like_percent'] = $like_percent . '%';  
  48.     $arr['unlike_percent'] = (100 - $like_percent) . '%';  
  49.   
  50.     return json_encode($arr);  
  51. }  
  52.   
  53. //获取用户真实IP  
  54. function get_client_ip() {  
  55.     if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))  
  56.         $ip = getenv("HTTP_CLIENT_IP");  
  57.     else  
  58.     if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))  
  59.         $ip = getenv("HTTP_X_FORWARDED_FOR");  
  60.     else  
  61.     if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))  
  62.         $ip = getenv("REMOTE_ADDR");  
  63.     else  
  64.     if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))  
  65.         $ip = $_SERVER['REMOTE_ADDR'];  
  66.     else  
  67.         $ip = "unknown";  
  68.     return ($ip);  
  69. }  

 


原文地址:http://www.freejs.net/article_jquerywenzi_647.html