2012-10-14 22 views
0

我有一些代码现在已经至少有30次了,它困扰了我好几个月(真的)。我已经修复了尽可能多的错误,但它不起作用。我希望这个任何读者可以找到我的错......AJAX Bug - 我该如何解决这个问题?

好了,该代码只是在鼠标悬停效果的AJAX请求数据发布到另一个网页,其中数据被接收。请看看:

这里是Ajax请求:

$(document).ready(function() { 
    $("#secretcoin").mouseover(function() { 
     $.ajax({ 
      type: "POST", 
      url: "achievements.php", 
      data: { 
       Home_Coin_Locator: "Yes" 
      }, 
      error: errorAlert 
     }); 
    }); 
}); 

所以这是请求 - 现在这里是接收页面,achievements.php

$achieve4 = $_POST['Home_Coin_Locator']; 
if ($achieve4 == 'Yes') { 
    $awardSTRsql = "UPDATE Awards_Inv SET Home_Coin_Locator='Yes' WHERE Username = '$username'"; 
    mysql_query($awardSTRsql, $connection) or die(mysql_error()); 
    $updatestatsSTRsql = "UPDATE User_Info SET Coins = Coins + 120, Skill_Points = Skill_Points + 10, Awards = Awards + 1 WHERE Username = '$username'"; 
    mysql_query($updatestatsSTRsql, $connection) or die(mysql_error()); 
} else {} 

我已经减少了我代码少量,并检查其大力,但它仍然无法正常工作......

顺便说一下,$连接简直就是我的数据库,我可以保证的是准确的连接。 $的用户名是在代码中,我并没有提供定义会话的用户名,但我也知道这个变量是准确的...

请帮帮我!

+0

什么不行?你有错误吗? “它根本不起作用”不是很有用 – Bort

+2

请小心构建这样的SQL查询;有没有机会$ username可以设置为'“'; DROP TABLE Awards_Inv; - ”? – hdgarrood

+2

您无法解决问题的原因是因为您没有说错什么 – Ibu

回答

0

的JavaScript似乎是正确的测试php文件更容易,你应该这样做:

> $achieve4 = $_GET['Home_Coin_Locator']; if ($achieve4 == 'Yes') { 
>  $awardSTRsql = "UPDATE Awards_Inv SET Home_Coin_Locator='Yes' WHERE Username = '$username'"; 
>  mysql_query($awardSTRsql, $connection) or die(mysql_error()); 
>  $updatestatsSTRsql = "UPDATE User_Info SET Coins = Coins + 120, Skill_Points = Skill_Points + 10, Awards = Awards + 1 WHERE Username = 
> '$username'"; 
>  mysql_query($updatestatsSTRsql, $connection) or die(mysql_error()); } else {} 

然后去/achievements.php?Home_Coin_Locator=Yes,看看是否有任何错误。

确保你的PHP错误报告是这样,如果有,他们会显示任何错误。

+0

好吧,但你可以帮我出$ _GET帖子,我似乎无法理解为什么有人会这样做,不能有人只是改变网址,以便信息会不同比开发商希望它是什么? – zingzing45