H
hopen160
Neues Mitglied
- 0
Hallo liebe Community,
ich habe schon alle möglichen Threads durchgesucht, doch leider habe ich keine Lösung zu meinem Problem finden können.
Ich habe eine App gebaut, mit der ich über ein EditText Feld einen String eingeben kann. Diese Variable wird in einen NameValuePair (ArrayList) gepackt und anschließend über http auf eine angegebene, interne IP (xampp) geschickt.
Das Testen läuft über ein angeschlossenes Android Handy, welches sich auch im gleichen, lokalen WLAN befindet, wie das Netbook wo der Xampp Apache mit der index.php File läuft. Diese index.php soll erst einmal die Variable aufnehmen und per echo-Befehl ausgeben. (später kommen da noch mySQL Befehle hinzu.)
Doch an dieser Stelle scheitert es einfach. Die Variable wird einfach nicht auf der Webseite angezeigt. Ich kann aber auch leider nicht sagen, ob es an dem Java Code liegt oder an der PHP Datei...
Habe zu Testzwecken auch auf dem Xampp Rechner die Firewall ausgemacht, weil ich dachte, dass vielleicht der Port falsch ist.
Leider weiß ich nun nicht mehr weiter.
Wäre super cool, wenn mir jemand einen Hint geben könnte
Viele Grüße
Tobi
Hier der Java Android App Code
Hier die Layout XML
Und hier das Mini PHP Schnipsel
ich habe schon alle möglichen Threads durchgesucht, doch leider habe ich keine Lösung zu meinem Problem finden können.
Ich habe eine App gebaut, mit der ich über ein EditText Feld einen String eingeben kann. Diese Variable wird in einen NameValuePair (ArrayList) gepackt und anschließend über http auf eine angegebene, interne IP (xampp) geschickt.
Das Testen läuft über ein angeschlossenes Android Handy, welches sich auch im gleichen, lokalen WLAN befindet, wie das Netbook wo der Xampp Apache mit der index.php File läuft. Diese index.php soll erst einmal die Variable aufnehmen und per echo-Befehl ausgeben. (später kommen da noch mySQL Befehle hinzu.)
Doch an dieser Stelle scheitert es einfach. Die Variable wird einfach nicht auf der Webseite angezeigt. Ich kann aber auch leider nicht sagen, ob es an dem Java Code liegt oder an der PHP Datei...
Habe zu Testzwecken auch auf dem Xampp Rechner die Firewall ausgemacht, weil ich dachte, dass vielleicht der Port falsch ist.
Leider weiß ich nun nicht mehr weiter.
Wäre super cool, wenn mir jemand einen Hint geben könnte

Viele Grüße
Tobi
Hier der Java Android App Code
Code:
package com.example.triathlonsportlercheck;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private EditText value;
private Button submitButton;
private ProgressBar uploadsign;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
value = (EditText) findViewById(R.id.editText1);
submitButton = (Button) findViewById(R.id.button1);
uploadsign = (ProgressBar) findViewById(R.id.progressBar1);
uploadsign.setVisibility(View.GONE);
submitButton.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void onClick(View v) {
// TODO Auto-generated method stub
if (value.getText().toString().length() < 1) {
// Toast, falls nichts eingegeben wird
Toast.makeText(this, getText(R.string.outOfBounds),
Toast.LENGTH_LONG).show();
} else {
uploadsign.setVisibility(View.VISIBLE);
new MyAsyncTask().execute(value.getText().toString());
}
// Textfeld nach dem Hochladen auf dem Server wieder leeren
value.setText("");
}
private class MyAsyncTask extends AsyncTask<String, Integer, Double> {
@Override
protected Double doInBackground(String... urls) {
// TODO Auto-generated method stub
postData(urls[0]);
return null;
}
protected void onPostExecute(Double result) {
uploadsign.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), getText(R.string.toast),
Toast.LENGTH_LONG).show();
}
protected void onProgressUpdate(Integer... progress) {
uploadsign.setProgress(progress[0]);
}
public void postData(String sportlerID) {
sportlerID = value.getText().toString();
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getCurrentFocus()
.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
// HTTP Client und Header initialisieren
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"http://192.168.0.2:80/triathlon/index.php");
try {
// Wert des Textfeldes in einem Array-Pair hochladen
// "myHTttpData" ist das Objekt in dem der Wert gespeichert wird
// und im PHP Script auf dem
// Server ausgelesen wird
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("sportlerID",
sportlerID));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
Log.e("log_tag", "Error in http connection" + e.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
}
}
Hier die Layout XML
HTML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/sportIDInfoText"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:ems="10"
android:hint=""
android:inputType="number"
>
<requestFocus />
</EditText>
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="24dp" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/progressBar1"
android:layout_centerHorizontal="true"
android:layout_marginTop="32dp"
android:text="@string/sqlSubmit" />
</RelativeLayout>
Und hier das Mini PHP Schnipsel
PHP:
<?php
if(isset($GLOBALS['sportlerID']) == true) {
echo $GLOBALS['sportlerID'];
}else{
echo "nicht initialisiert";
}
?>