Werte per $_GET werden nicht ausgelesen/gespeichert

  • Antworten:8
A G
  • Forum-Beiträge: 31

07.07.2012, 17:19:43 via Website

Ich sitze momentan an einer App, die 6 Werte speichern soll. Diese werden per PHP an eine MySQL Datenbank weitergeleitet und dort sollen sie gespeichert werden. Allerdings werden die Werte nicht gespeichert oder erst gar nicht übertragen

1Interpret = (EditText)findViewById(R.id._Interpret);

So hol ich mir den Wert aus dem EditText.

1String Interpret_ = String.valueOf(Interpret.getText());
2 String Titel_ = String.valueOf(Titel.getText());
3 String Album_ = String.valueOf(Album.getText());
4 String Albumcover_ = String.valueOf(Albumcover.getText());
5 String Youtube_ = String.valueOf(Youtube.getText());
6 String Uploader_ = String.valueOf(Uploader.getText());
7
8 HttpClient httpClient = new DefaultHttpClient();
9 HttpPost httpPost = new HttpPost("http://www.url.de/android_charts_write.php?interpret="+Interpret_+"&titel="+Titel_+"&album="+Album_+"&albumcover="+Albumcover_+"&youtube="+Youtube_+"&uploader="+Uploader_);
10 try {
11 HttpResponse response = httpClient.execute(httpPost);
12 Toast.makeText(getApplicationContext(), "Gespeichert!",
13 Toast.LENGTH_SHORT).show();
14 } catch (Exception e) {
15 Toast.makeText(getApplicationContext(),"Fehlgeschlagen",
16 Toast.LENGTH_SHORT).show();
17 }

Das ist der Code aus der OnClick Methode, wenn man auf "Speichern" klickt.

1<?php
2
3 mysql_connect ("localhost", "xxx", "xxx");
4 mysql_select_db ("datenbank");
5
6 function quote_smart($value) {
7 if (get_magic_quotes_gpc()) {
8 $value = stripslashes($value);
9 }
10 if (!is_numeric($value) || $value[0] == '0') {
11 $value = "'" . mysql_real_escape_string($value) . "'";
12 }
13 return $value;
14 }
15
16
17 $query = "INSERT INTO Charts (interpret, titel, album, albumcover, youtube, uploader) VALUES ('".quote_smart($_GET['interpret'])."', '".quote_smart($_GET['titel'])."', '".quote_smart($_GET['album'])."', '".quote_smart($_GET['albumcover'])."', '".quote_smart($_GET['youtube'])."', '".quote_smart($_GET['uploader'])."')";
18
19
20 mysql_query($query, $connect);
21
22 mysql_close();
23?>

Das ist mein php Quelltext. ich weiß nicht, wo der Fehler liegt.

— geändert am 07.07.2012, 17:46:46

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

07.07.2012, 17:30:13 via Website

lass mich raten wann du geburtstag hast:
13.8.93


zum thema:

hilf dir mit debug ausgaben um zu sehen, wie weit du genau kommst

php errors sind auch oft hilfreich

swordiApps Blog - Website

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

07.07.2012, 17:30:53 via Website

btw:

warum schickst du einen http post request und übergibst die werte dann trotzdem per get ?

swordiApps Blog - Website

Antworten
A G
  • Forum-Beiträge: 31

07.07.2012, 17:39:47 via Website

Oh Gott! Da waren die Finger wieder schneller als der kopf. Mal eben alles geändert! Ich muss dazusagen, dass ich gerade dabei bin mich in das Thema reinzufinden bzw. meine Kenntnisse zu erweitern.
Ich war bei einem Android-Workshop und daher habe ich teilweise Code-Fragmente übernommen. Wie soll das mit den Debugausgaben funktionieren? Was meinst du mit httpPost request und $_GET? Ich dachte $_GET bezieht die werte aus der URL?

1response.getStatusLine().getStatusCode();
bewirkt was?

Sorry, für die Fragen, aber so lernt mans ja ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

07.07.2012, 17:43:12 via Website

Du solltest mal schleunigst Deine Datenbank Zugangsdaten, sowie die ScriptURL verfälschen oder hier rausnehmen. Ansonsten könnte es passieren, dass Du unliebsame Überraschungen auf Deinem Webserver erlebst. Nur so als Tipp. -_-

lg Voss

Antworten
A G
  • Forum-Beiträge: 31

07.07.2012, 17:47:01 via Website

Schon geschehen ;)

Aber nun zurück zum Thema...wer kann helfen?

— geändert am 07.07.2012, 17:58:18

Antworten
A G
  • Forum-Beiträge: 31

07.07.2012, 18:59:59 via Website

So habs gelöst. Hab das mit httpPost gelöst:

1... HttpPost httpPost = new HttpPost("http://www.url.de/android_charts_write.php");
2
3 ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
4 nameValuePairs.add(new BasicNameValuePair("interpret", Interpret_));
5 nameValuePairs.add(new BasicNameValuePair("titel", Titel_));
6 nameValuePairs.add(new BasicNameValuePair("album", Album_));
7 nameValuePairs.add(new BasicNameValuePair("albumcover", Albumcover_));
8 nameValuePairs.add(new BasicNameValuePair("youtube", Youtube_));
9 nameValuePairs.add(new BasicNameValuePair("uploader", Uploader_));
10
11 try {
12 httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
13 HttpResponse response = httpClient.execute(httpPost);
14 response.getStatusLine().getStatusCode();
15
16 Toast.makeText(getApplicationContext(), "Gespeichert!",
17 Toast.LENGTH_SHORT).show();

und in meiner PHP statt $_GET einfach $_POST geschrieben.

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

07.07.2012, 19:33:05 via Website

Wenn Du den StatusCode nicht auswertest dann kannst Du die Zeile auch wieder rausnehmen. Die liefert die z.B. die 200 für "Alles OK". Wenn von Deiner Website immer nur 200 kommt kannst Du diese Zeile ignorieren.

Nur so am Rande: Variablen sollte man in Java nicht mit einem Großbuchstaben beginnen. Das ist Klassennamen vorbehalten. Passiert zwar nix wenn man sich daran nicht hält - der Code ist aber einfacher zu lesen.

Antworten