2011-10-14 64 views
0

我使用php從mysql-server獲得一行隨機數。然後我會顯示一些信息,並希望讓用戶對該特定行進行反饋。但是,我似乎無法將ID正確傳輸到update.php。 (服務器上沒有更新)。有人可以發現我的錯誤嗎?使用變量作爲post到php/mysql中的值

的MySQL - PHP得到一個(醜陋)無規排:

$con = mysql_connect($host,$user,$pass); 
$dbs = mysql_select_db($databaseName, $con); 
mysql_query("SET CHARACTER SET utf8"); 
mysql_query("SET NAMES utf8"); 
$result = mysql_query("SELECT id, username, message, ttime, field1, field2 FROM field WHERE done = 0 ORDER BY RAND() LIMIT 1"); 
$array = mysql_fetch_row($result);  

echo json_encode($array); 

接着的index.php:

<div id="output"> 
<div id="username">content</div> 
<script id="source" language="javascript" type="text/javascript"> 
$(function() 
    { $.ajax({          
     url: 'api.php', 
     data: "",   
     dataType: 'json',    
     success: function(data)  
     { 
     var id = data[0];   
     var vname = data[1];   
     var message = data[2]; 
    var timestamp = data[3]; 

     $('#output').html(timestamp +message); 
     $('#username').html(vname); 

     } 
    }); 

    }); 
    </script> 

    <script> 
    $(document).jkey('a',function() { 
     $.post("update.php", { id: "id"}) 
    }); 
</script> 

然後在update.php:

<?php require_once('Connections/connection.php'); ?> 
<?php 
$id = $_POST['id']; 
$sql = "UPDATE field SET field1 = field1 +1 WHERE id = '$id'"; 
$result = mysql_query($sql); 
?> 
+0

什麼生產上的$ id後續代碼var_dump? –

+0

我建議您稍微清理一下代碼,將所有內容混合在一個模塊中,這使得它很難閱讀和理解。如果你希望獲得更多的幫助,至少可以發佈更多的代碼並從javascript中分離PHP(哦,並且完成ajax調用,丟失括號和所有這些點並不能幫助我們確定這是你的語法錯誤還是你決定只能粘貼一小段代碼) – Gazillion

+1

好的SQL注入漏洞你已經到了那裏。如果有人開着一輛卡車穿過它並停在你的服務器上,那就太遺憾了。 –

回答

1

把全球_idscript標籤,然後:

$.ajax({          
    url: 'api.php',   
    data: "",  
    dataType: 'json',    
    success: function(data)  
    { 
    var id = data[0]; 
    _id = id; 
    //... 

<script> 
    $(document).jkey('a',function() { 
    $.post("update.php", { "id": _id}) // <--- Look here 
    }); 
</script> 
+0

工作,真棒! – user977101

0
$.post("update.php", { id: "id"}) 

正在將字符串id發送到服務器a是身份證。您將要基於用戶選擇哪一行對持有的ID號的實際變量來代替它,例如

$.post("update.php", { id: rowIDNum}) 

如果您提供用戶如何被選擇行的一些信息,我可以提供有關如何確定放入rowIDNum的值的更多詳細信息。