2016-04-02 12 views
1

PHPスクリプトにアンドロイドからポストデータをフェッチすることはできません。値をハードコーディングで

<?php 

include('ConnectDB.php'); 
$user_name=$_POST['userName']; 
$mobile_num=$_POST['mobileNo']; 
$latitude=$_POST['latitude']; 
$longitude=$_POST['longitude']; 
$status=1; 

echo $mobile_num; 

$sql = "INSERT INTO user (username,mobileNo,latitude,longitude,status) VALUES (?,?,?,?,?)"; 
$stmt = $con->prepare($sql); 
$stmt>bind_param("sssss",$user_name,$mobile_num,$latitude,$longitude,$status);$result=$stmt->execute(); 


if($result) 
    echo "inserted ". $result ." row/rows"; 
else 
    die('Could not connect: ' . $con->error); 

mysqli_close($con); 

?> 

、コードが正しくデータを挿入するが、POSTメソッドは、ユーザ名、緯度、経度の値をキャッチすることができません。

@Override 
    protected String doInBackground(String... params) { 

    try { 

     data= URLEncoder.encode("mobileNo","UTF-8") 
       + "="+URLEncoder.encode(mUser.getMobileNo(),"UTF-8"); 

     data+= URLEncoder.encode("userName","UTF-8") 
       + "="+URLEncoder.encode(mUser.getUsername(),"UTF-8"); 

     data+= URLEncoder.encode("latitude","UTF-8") 
       + "="+URLEncoder.encode(String.valueOf(mUser.getLatitude()),"UTF-8"); 

     data+= URLEncoder.encode("longitude","UTF-8") 
       + "="+URLEncoder.encode(String.valueOf(mUser.getLongitude()),"UTF-8"); 

    } catch (Exception e) 
    { 
     Toast.makeText(activityContext, "ERROR: "+e, Toast.LENGTH_LONG).show(); 
    } 

    return insertUserData(data); 
} 


private String insertUserData(String data) 
{ 
    try 
    { 
     conn = DBConnection.createConnnection(php_file); 
     OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); 
     writer.write(data); 
     writer.flush(); 

     BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
     response = reader.readLine(); 

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

    return response; 
} 

私はこの問題を解決するために何をしなければならない。

これは私のアンドロイドのコードですか?

+0

フォームで詳しく説明できますか? – lionheart

+0

あなたはまだ実用的な解決策を見つけましたか? – gmfm

答えて

0

データ文字列を作成するときは、各属性の間に '&'を配置する必要があります。 '&'をURLエンコードしないでください。

data= URLEncoder.encode("mobileNo","UTF-8") 
      + "="+URLEncoder.encode(mUser.getMobileNo(),"UTF-8"); 

    data+= "&" + URLEncoder.encode("userName","UTF-8") 
      + "="+URLEncoder.encode(mUser.getUsername(),"UTF-8"); 

    data+= "&" + URLEncoder.encode("latitude","UTF-8") 

      + "="+URLEncoder.encode(String.valueOf(mUser.getLatitude()),"UTF-8"); 

    data+= "&" + URLEncoder.encode("longitude","UTF-8") 
      + "="+URLEncoder.encode(String.valueOf(mUser.getLongitude()),"UTF-8"); 
+0

ありがとうございます!これは私のために働いた – lionheart

関連する問題

 関連する問題