2012-07-27 103 views
0

我的代碼很好,除了「userName」,由於某些原因通過JSON發送字符串不會發布到表,它什麼都不發送。用json發送字符串到php

任何人都可以看到什麼問題是?

jQuery的

lowestScoreId = 1; 
userPoints = 50; 
userName = "ted"; 

$.getJSON("functions/updateHighScores.php", {lowestScoreId: lowestScoreId, userPoints: userPoints, userName: userName}, function(data) { 

    $('#notes').text(data.userName); //for testing 

}); 

PHP

lowestScoreId = json_decode($_GET['lowestScoreId']); 
$userName = json_decode($_GET['userName']); 
$userPoints = json_decode($_GET['userPoints']); 

include 'config.php'; 

$currentTime = time(); 

mysql_query("UPDATE highScores 
SET `name` = '$userName', 
    `score` = '$userPoints', 
    `date` = '$currentTime' 
WHERE id='$lowestScoreId'"); 

echo json_encode(array("userName" => $userName)); // for testing 
+0

我看不到'$ obj'的任何用法。 – Leri 2012-07-27 11:58:50

+0

我想你已經把它混淆了......應該有一個JSON對象不是三個發送的?它應該像'$ obj = json_decode($ _ GET ['jsonObj'])'和其他從JSON對象中取得的值。另一件事......你並沒有清理你的輸入,並直接輸入你的MySQL數據庫。 – Ozzy 2012-07-27 12:01:07

+0

嗯,好吧。感謝提示。我仍然有點新,所以在這一點上讓事情發揮作用。 – user1555800 2012-07-27 12:02:26

回答

2

你爲什麼這樣做:

$userName = $obj = json_decode($_GET['userName']); 

它正常工作

$userName = $_GET['userName']; 
+0

好吧,我糾正了我的自我,那就是解決方案。什麼是json_decode? – user1555800 2012-07-27 12:39:40

+0

@ user1555800看看這:http://php.net/manual/en/function.json-decode.php另外,強制性提及您的代碼容易受到SQL注入,因爲它目前... – Mansfield 2012-07-27 12:42:45

+0

好吧,它如何易受攻擊? – user1555800 2012-07-27 12:54:28