2011-11-11 17 views
1

私がアンドロイドアプリでこのコードを呼んでいる迷子にされていますサーバーに情報を送信するが、情報がどこか

public static void sendAccelerationData(String userIDArg, String dateArg, String timeArg, 
      String timeStamp, String lat, String longi, String alt) 
    { 
     //fileName = "AddAccelerationData.php"; 

     //Add data to be send. 
     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(6); 
     nameValuePairs.add(new BasicNameValuePair("userID", userIDArg)); 
     nameValuePairs.add(new BasicNameValuePair("date",dateArg)); 
     nameValuePairs.add(new BasicNameValuePair("time",timeArg)); 
     //nameValuePairs.add(new BasicNameValuePair("timeStamp",timeStamp)); 

     nameValuePairs.add(new BasicNameValuePair("lat",lat)); 
     nameValuePairs.add(new BasicNameValuePair("longi",longi)); 
     nameValuePairs.add(new BasicNameValuePair("alt",alt)); 

     //this.sendData(nameValuePairs); 
     try 
     { 
      TextLog.addLogStuff("SERV Trying to connect to Server"); 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new  
      HttpPost("http://myserver.php"); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = httpclient.execute(httppost); 
      Log.i("ServerConn", response.getStatusLine().toString()); 
      TextLog.addLogStuff("SERV PostData: " +response.getStatusLine().toString()); 
       //Could do something better with response. 
     } 
     catch(Exception e) 
     { 
      Log.e("log_tag", "Error: "+e.toString()); 
      TextLog.addLogStuff("SERV Connection error: " +e.toString()); 
     } 
    } 

が続いmyserver.phpのコードは次のとおりです。どういうわけか

?php 


    //from the online tutorial: 

    $usr = "bikemap"; 
     $pwd = "pedalhard"; 
     $db = "test"; 
     $host = "localhost"; 

     $cid = mysql_connect($host,$usr,$pwd); 

     if (!$cid) { echo("ERROR: " . mysql_error() . "\n"); } 

     $userID = $_POST['userID']; 
     $date = $_POST['date']; 
     $time = $_POST['time']; 

     $lat = $_POST['lat']; 
     $long = $_POST['longi']; 
     $alt = $_POST['alt']; 
     mysql_select_db("test"); 
     mysql_query("INSERT INTO gpsdata (userID, date, time, lat, longi, alt) VALUES ('$userID', '$date', '$time', '$lat','$longi','$alt') ") or die(mysql_error()); 

     /*$SQL = " INSERT INTO gpsdata "; 
    $SQL = $SQL . " (userID, date, time, lat, longi, alt) VALUES "; 
    $SQL = $SQL . " ('$userID', '$date', '$time', '$lat','$longi','$alt') "; 
    $result = mysql_query("$SQL"); 

    if (!$result) { 
     echo("ERROR: " . mysql_error() . "\n$SQL\n"); } */ 

    //echo ("New Link Added\n"); 



    mysql_close($cid); 
    ?> 

情報をそれはSQL Serverにしていません。メソッドを開始するだけで、トラブルシューティングのために6つの文字列を何度も渡しています。いずれもサーバーに到達していません。何かご意見は?

編集:

今朝私はより多くのトラブルシューティングを試みました。右、だから、どちらか間違っているWebページやサーバーで何かがなければならない

11/11/2011 10:11:09:460 AM: SERV userID: Loren 
11/11/2011 10:11:09:464 AM: SERV Trying to connect to Server 
11/11/2011 10:11:11:666 AM: SERV PostData: HTTP/1.1 200 OK 
11/11/2011 10:11:11:674 AM: SERV rawData: [userID=Loren, date=today, time=now, 
    > lat=bit 1, longi=bit 2, alt=bit 3] 

:私はテキストログが作成したテキストファイルからこの背中を得た

Log.i("ServerConn", response.getStatusLine().toString()); 
      TextLog.addLogStuff("SERV PostData: " +response.getStatusLine().toString()); 
      TextLog.addLogStuff("SERV rawData: " + nameValuePairs); 

:私は私のアンドロイドのコードにこれらの行を挿入しました?もっと来る。

編集V2:

私はPHPファイルにこれを追加しました:

$string = "User ID: "; 
$string = $string . $userID; 
$string = $string . "Date: " . $date; 
$string = $string . "\n"; 


$filename = 'test.txt'; 
$fp = fopen($filename, "a"); 
$write = fputs($fp, $string); 
fclose($fp); 

そして、これは、テキストファイルの内容です:

ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:
ユーザーID:日付:

質問1テキストファイルに書き込むために正しい言葉を使用していますか?今日私はこれに答えました。私は正しい言葉を使用しています。

質問2適切な言葉遣いを使用している場合、ドロイドからページへのデータはどこに失われていますか?

ありがとうございました!

+0

テスト済みです。すべて正常です。だから問題はコードにはない。 Log.i( "ServerConn"、response.getStatusLine()。toString());の出力は何ですか?問題はアンドロイド部分にあると確信していますか?あなたはブラウザでPHPスクリプトをテストしましたか?エラーメッセージはありますか? –

+0

@matthiasありがとう、私は文字列が正しくデータ送信メソッドに解析されていることを確認するためにログを挿入しました。サーバーの応答がHTTP 200 OKに戻りました。私はまた、何も出力していないサーバー側にテキスト出力を追加しました。だからアンドロイドのどこかが迷子になっている。 –

+0

さらに多くのログが投稿されました –

答えて

1

マニフェストファイルに以下を含めてください。

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
+0

考えてくれてありがとう...それが私の目録にあります –

関連する問題