2012-09-17 47 views
0

代碼的Android設備上是:我需要做的就是發佈3個值! Android版PHP服務器腳本

public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) { 


    // Making HTTP request 
    try { 
     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 
     httpPost.setEntity(new UrlEncodedFormEntity(params)); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent(); 

    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "n"); 
     } 
     is.close(); 
     json = sb.toString(); 
     Log.e("JSON", json); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 

    // try parse the string to a JSON object 
    try { 
     jObj = new JSONObject(json); 
    } catch (JSONException e) { 
     Log.e("JSON Parser", "Error parsing data " + e.toString()); 
    } 

    // return JSON String 
    return jObj; 
    } 

代碼的PHP服務器是:

$name = $_POST['name']; 
    $email= $_POST['email']; 
    $password = $_POST['password']; 

    $user = $db->storeUser($name, $email, $password); 

    if($user){ 
      echo json_encode($response). "User Stored Successfully"; 
     } 
     else{ 
      echo json_encode($response). "Error Occured in Registration"; 
     } 

其中storeUser是:

public function storeUser($name, $email, $password) { 

    $result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES('$uuid', '$name', '$email','$encrypted_password', '$salt', NOW())"); 

    } 

其工作過程,發回消息給android設備,但是細節不是插入到MySQL數據庫中的 ?

我想要的只是從Android設備發佈詳細信息,並將它們插入我的服務器上的MySQL數據庫。

任何人都知道這是爲什麼造成的,我做錯了什麼?

+0

**警告**您的代碼易受sql注入攻擊。 –

+0

教程如何防止? – cwiggo

回答

1

我想通過上面的代碼發現問題。

在java/android代碼中傳遞給httppost的url沒有作爲我使用的api的簡單地址,我試過了www.domain.com/index.php?與'?'。添加這個代碼就可以工作。

我只是回到基本,看是什麼讓一個帖子

這裏是在維基百科http://en.wikipedia.org/wiki/POST_(HTTP)的POST文章的引用,它幫助我弄清楚是什麼讓一個HTTP POST

1
$name = $_POST['name']; 
$name = $_POST['email']; 
$name = $_POST['password']; 

這顯然是錯誤的。將變量更改爲$email$password

此外,停止使用mysql_query,因爲它變得deprecated。改爲使用PDOMySQLi

+0

我的錯誤,複製錯誤,我會給PDO一個嘗試 – cwiggo

相關問題