2012-02-28 33 views
0

我使用下面的代碼將數據發佈到我的服務器Android的HTTP POST到PHP腳本

HttpClient httpclient = new DefaultHttpClient(); 

        HttpPost httppost = new HttpPost("http://www.kizikstudios.com/wltbo/new_score.php"); 


        try { 
         // Add your data 
         List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3); 
         nameValuePairs.add(new BasicNameValuePair("name", "harry")); 
         nameValuePairs.add(new BasicNameValuePair("score", "12345")); 
         nameValuePairs.add(new BasicNameValuePair("pass", "***")); 
         HttpEntity entity = new UrlEncodedFormEntity(nameValuePairs); 

         httppost.addHeader(entity.getContentType()); 
         httppost.setEntity(entity); 

         // Execute HTTP Post Request 
         HttpResponse response = httpclient.execute(httppost); 
         String feedback = EntityUtils.toString(response.getEntity()); 
         feedback.length(); 

        } catch (ClientProtocolException e) { 
         // TODO Auto-generated catch block 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
        } 

服務器接收發布請求,但它說,大小是零個字節,我的數據庫永遠不會改變。如果需要,這裏是服務器端腳本。

<? 
//****Made by: Jeroen den Haan***Alias's: jeroen84/Jer'ul**** 
include_once ("_data.php"); 
$conn = mysql_connect($db_host,$db_user,$db_pass); 
mysql_select_db($db_name,$conn); 

if ($pass==$add_pass) { 

if ($u_user==1) { 

    $sql3 = "SELECT name FROM $db_table ORDER BY name"; 
    $result3 = mysql_query($sql3); 
    while($r = mysql_fetch_object($result3)) 
{ 
    $tmp = "{$r->name}"; 
    if ($name==$tmp) { 
     $n_exist=1; 

    } 
} 
if ($n_exist==1) { 
    $sql1 = "UPDATE $db_table SET score='$score' WHERE name=\"$name\""; 
    $result1 = mysql_query($sql1); 
} else { 
    $sql1 = "INSERT INTO $db_table (name,score) VALUES (\"$name\",\"$score\")"; 
    $result1 = mysql_query($sql1); 
} 

} else { 
$sql1 = "INSERT INTO $db_table (name,score) VALUES (\"$name\",\"$score\")"; 
$result1 = mysql_query($sql1); 
} 

$sql2 = "SELECT id FROM $db_table ORDER BY score DESC"; 
$result2 = mysql_query($sql2); 

$num = 1; 
while($r = mysql_fetch_object($result2)) 
{ 
$result = mysql_db_query($db_name,"SELECT * from $db_table WHERE id='{$r->id}'"); 
$resultArray = mysql_fetch_array($result); 
$did = $resultArray["id"]; 
$name = $resultArray["name"]; 
$score = $resultArray["score"]; 
if ($num>$sec_size) { 
$sql3 = "DELETE FROM $db_table WHERE id='$did'"; 
$result3 = mysql_query($sql3); 
} 
$num++; 
} 
} 

mysql_close ($conn); 
?> 

有沒有人知道爲什麼這不起作用?先謝謝你!

+0

您是否嘗試直接在瀏覽器中使用php腳本?它工作嗎? – Arfeen 2012-02-28 07:22:44

+0

你的腳本不輸出/顯示/打印任何東西..它怎麼能返回一些東西給Android客戶端...? – Arfeen 2012-02-28 07:23:58

+0

你的php代碼沒有捕捉到從android獲得的值。 – Sumant 2012-02-28 07:34:34

回答

0

你的php文件中的變量是從其他腳本捕獲後期值的位置?你可以var_dump()這些變量,看看你是否得到任何後期值到您的PHP腳本?