php - 使用 jQuery、Ajax 和 PHP 的投票系统只能在本地服务器上运行

标签 php mysql ajax jquery voting

我不擅长 PHP(刚刚学习)。 我尝试修改从免费资源下载的 php 投票脚本。不过我可以添加图像(这对我来说不是一件容易的事而且我还没有完成)。 现在投票在我的本地服务器上运行良好,但在网上却不行。如果我点击投票,数字就会消失而不会返回。以下是要研究的代码。

index.php ---

<?php include('config.php'); 

$sql=mysql_query("SELECT * FROM messages ORDER BY `messages`.`up` DESC LIMIT 20"); 

while($row=mysql_fetch_array($sql)) { $title=$row['title']; $desc=$row['desc']; 

$mes_id=$row['mes_id']; $image=$row['image']; $up=$row['up']; 

$down=$row['down']; ?> <div id="vote"> <div class="box1"> 
<div class='up'><a href="" class="vote" id="<?php echo $mes_id; ?>" name="up"> 
<?php echo $up; ?></a></div> 

<div class='down'><a href="" class="vote" id="<?php echo $mes_id; ?>" name="down">
<?php echo $down; ?></a></div></div> 

<div class='image' ><?php echo "<img src=user/admin/".$image ." width='87%' height='70%'/>"?></div> 

<div class ='title'><?php echo $title; ?></div> 

<div class='box2' > 
<?php echo $desc; ?> </div> </div> 

<?php } ?>

up_vote.php --------------------------

<?php include("config.php"); 

$ip=$_SERVER['REMOTE_ADDR']; 
if($_POST['id']) { $id=$_POST['id']; $id = mysql_real_escape_String($id); $ip_sql=mysql_query("SELECT ip_add FROM voting_ip WHERE mes_id_fk='$id' AND ip_add='$ip'"); 

$count=mysql_num_rows($ip_sql)or die(mysql_error()); 
if($count<=20) 
{ 
$sql = "UPDATE messages SET up=up+1 WHERE mes_id='$id'"; mysql_query( $up); 
$sql_in = "INSERT INTO messages (mes_id_fk,ip_add) VALUES ('$id','$ip')"; mysql_query( $sql_in); 
} else 
{ echo "<script>alert('You have already voted');</script>"; } 
$result=mysql_query("SELECT up FROM messages WHERE mes_id='$id'"); 
$row=mysql_fetch_array($result); $up_value=$row['up']; echo $up_value; } ?> 

down_vote.php ------------------------------

<?php include("config.php"); 

$ip=$_SERVER['REMOTE_ADDR']; 
if($_POST['id']) { $id=$_POST['id']; 
$id = mysql_real_escape_String($id);

 $ip_sql=mysql_query("SELECT ip_add FROM voting_ip WHERE mes_id_fk='$id' AND ip_add='$ip'"); 

$count=mysql_num_rows($ip_sql) or die(mysql_error());
 if($count<=0)

 { $sql = "UPDATE Messages SET down=down+1 WHERE mes_id='$id'"; mysql_query( $sql); 
$sql_in = "INSERT INTO voting_ip (mes_id_fk,ip_add) values ('$id','$ip')"; mysql_query( $sql_in); 
} else { echo "<script>alert('You have already voted');</script>"; } 

$result=mysql_query("SELECT down FROM Messages WHERE mes_id='$id'"); 
$row=mysql_fetch_array($result); 
$down_value=$row['down']; echo $down_value; } 
?>

Javascript --------------------------(这是在带有一些 HTML 代码的索引 header 处)

<script type="text/javascript">
$(function() {

$(".vote").click(function() 
{

var id = $(this).attr("id");
var name = $(this).attr("name");
var dataString = 'id='+ id ;
var parent = $(this);


if(name=='up')
{

$(this).fadeIn(200).html('<img src="dot.gif" align="absmiddle">');
$.ajax({
   type: "POST",
   url: "up_vote.php",
   data: dataString,
   cache: false,

   success: function(html)
   {
    parent.html(html);

  }  });

}
else
{

$(this).fadeIn(200).html('<img src="dot.gif" align="absmiddle">');
$.ajax({
   type: "POST",
   url: "down_vote.php",
   data: dataString,
   cache: false,

   success: function(html)
   {
       parent.html(html);
  }

 });


}


return false;
    });

});
</script>

感谢大家的帮助,谢谢大家。

最佳答案

从您的代码,

if($count==50)

然后只有值被更新!!第一次去投票的人怎么可能??? 应该是

if($count<50)

关于php - 使用 jQuery、Ajax 和 PHP 的投票系统只能在本地服务器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20705476/

相关文章:

php - Float 和 varchar 中的 Laravel 4 和 MYSQL 列

javascript - 405 未找到方法。在本地主机上

mysql - mysql 中没有 LIMIT 的 OFFSET

Javascript:需要按顺序处理代码

ajax - 由于 Ajax,Tomcat session 空闲不工作

php - XML DOM PHP 添加一个子节点到 root/links/link

php - 通过引用传递,$a = &$b,$a=$n 是否与 $b=$n 相同?

php - Codeigniter 无法从数据库表中获取所有数据

mysql - SQL中的多个like运算符

php - JavaScript/jQuery 和 PHP Ajax 强制报错