Parameterübergabe für MySQL-Datenbankabfrage

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Parameterübergabe für MySQL-Datenbankabfrage

    Hallo Zusammen,
    ich habe mich nun hier angemeldet, weil ich folgende Thematik habe:

    1. Ich betreibe ein Internetportal zur Ermittlung der optimalen Dosierung von gerinnungshemmenden Medikamenten (Marcumar, Phenprocoumon, Falithrom, u.ä.). Viele von Euch werden mit dem Thema dieser Seite sicherlich nichts anfangen können, ist für meine aktuelle Problemstellung auch nicht relevant. Viele meiner Nutzer haben jedoch nach einer mobilen App für das Handy angefragt. Das Grundgerüst (Oberflächen und Verlinkung untereinander sind soweit auch schon erstellt.
    2. Im Hintergrund der Internetseite läuft eine MySQL-Datenbank in der neben den ermittelten Dosierungen auch die entsprechenden LogIn-Informationen gespeichert sind.
    3. Damit man über die mobile App nicht jedes mal die LogIn-Daten neu eingeben muss will es so gestallten, dass diese in einer lokalen Datei gespeichert werden. Die Routine zum Speichern und Auslesen der lokalen Datei sind bereits erstellt und funktionieren soweit.

    Nun zum Kern der Thematik:
    Ich möchte, dass bevor die Datei lokal angelegt wird, über eine mobile Datenverbindung geprüft wird, ob die angegebenen LogIn-Daten korrekt sind.

    Hierzu habe ich bereits auf dem Server eine PHP-Funktionsdatei abgelegt, welche dann die zu sendenden LogIn-Daten mit denen der MySql-Datenbank abgleicht und ein True oder False zurück gibt. Die Abfrage ist in der PHP-Funktion auf dem Server hinterlegt und sieht folgendermaßen aus:

    $sql = mysql_query("SELECT $mysqlname FROM $mysqltable WHERE $mysqlname='$username' AND $mysqlemail ='$email' AND $mysqlpwd='$passwort'");
    $num = mysql_num_rows($sql);
    while($e=mysql_fetch_assoc($num))
    $output[]=$e;

    Als Ergebnis sollte dann hier entsprechend über $Output das Ergebnis (True/False) an die App zurückgegeben werden. Aber........

    Wie kann ich die in der App eingegebenen LogIn-Daten an diese Abfrage übergeben umd in der PHP-Funktionsdatei die Abfrage zu vervollständigen?

    Innerhalb der Internetplattform würde das wie nachfolgend dargestellt erfolgen:

    mysql_connect(MYSQL_HOST,MYSQL_BENUTZER,MYSQL_KENNWORT);
    mysql_select_db(MYSQL_DATENBANK);

    $username = $_POST['username'];
    $passwort = $_POST['passwort'];
    $email = $_POST['email'];

    Aber wie übergebe ich hier 'username', 'passwort' und 'email' von der App an die Funktion?

    Danke vielmals für Eure Unterstützung und Denkanstöße.

    Gruß
    Markus
  • Zunächst einmal hoffe ich das Du Username und Passwort nicht ohne Verschlüsselung auf dem Device gespeichert hast.

    Dann solltest du NIEMALS das Passwort selber als PArameter übergeben sondern immer nur den HASH des Passwortes. Da Du ziemlicher Anfänger bist wie mir scheint, würde ich dir hier das Stichwort MD5 empfehlen. Auch wenn es milerweile schon besseres gibt ist das für den Einstieg sicher am einfachsten.

    Dann darfst du NIEMALS deine Datenbank direkt aus der App heraus ansprechen. Denn dann müßtest Du in der App die Zugangsdaten der Datenbank speichern und wenn die jemand heraus holt, dann löscht er dir aus Spaß mal eben deine DB.

    Es muss also alles über einen Webservice laufen. Für den Login hast Du ja schon ein PHP Script gemacht. Also bleiben wir auch dabei. Ein PHP Script rufst Du über einen HHTP Request auf. In diesem Fall ein POST Request. Wenn Du nach

    android POST HTTP Request

    googelst solltest du viele Beispiele finden.

    Gruß

    Claus
  • Hallo Claus,
    erst einmal vielen Dank für Deine Hinweise.

    Vorweg: keine Sorge, ich hatte es mir schon so zurechtgelegt, dass ich die Datenbankaufrufe über PHP-Scripte ausführe, die ich auf dem Server ablege... genauso wenig, wie ich die mit der Weitergabe der geplanten App die Zugangsdaten auf jedem Gerät hinterlegen will, will ich natürlich auch nicht den von mir entwickelten Algorithmus, der ja das Kernstück meiner Webseite ist, auf den Endgeräten hinterlegen und werde hier also sehr verstärkt mit Webservices arbeiten. Für die Verschlüsselung ist MD5 auf jeden Fall schon mal eine Option, an welche ich mich dann noch ransetzen werde.

    Und danke für den Hinweis für die Google-Suchanfrage, ich denke und hoffe, dass ich da werde ich auch fündig werden... oftmals ist es ja wirklich einfach nur "problematisch" die passenden Schlüsselwörter für die Suchanfrage zu wählen. Insofern hast Du mir dann auf jeden Fall schon mal weitergeholfen.

    Und was Deine Vermutung, meiner Programmierkenntnisse betreffend, angeht - so muss ich Dir in Teilen zustimmen. Datenbankprogrammierung an sich ist überhaupt kein Problem. Der Internetauftritt war gewiss auch eine entsprechende Herausforderung, aber nur so lernt man und entwickelt sich weiter. Die meißte Programmiererfahrung habe ich mit VB. Mit Java und Android begebe ich mich aktuell wirklich auf absolutes Neuland... zumindest was meinen bisherigen Horizont betrifft.

    Gruß
    Markus
  • Hallo Leute,
    die Probleme scheinen irgendwie nicht wegbleiben zu wollen:

    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;

    Bei vorgenannten Importanweisungen sind die jeweils letzten Argumente alle rot geschrieben.

    Dazu nachfolgende Fehlermeldungen:

    Error:(21, 23) error: cannot find symbol class HttpResponse
    Error:(22, 23) error: cannot find symbol class NameValuePair
    Error:(23, 30) error: cannot find symbol class ClientProtocolException
    Error:(24, 30) error: cannot find symbol class HttpClient
    Error:(25, 37) error: cannot find symbol class UrlEncodedFormEntity
    Error:(26, 38) error: cannot find symbol class HttpPost
    Error:(27, 35) error: cannot find symbol class DefaultHttpClient
    Error:(28, 31) error: cannot find symbol class BasicNameValuePair
    Error:(139, 17) error: cannot find symbol class HttpClient
    Error:(139, 41) error: cannot find symbol class DefaultHttpClient
    Error:(140, 17) error: cannot find symbol class HttpPost
    Error:(140, 37) error: cannot find symbol class HttpPost
    Error:(142, 22) error: cannot find symbol class NameValuePair
    Error:(142, 62) error: cannot find symbol class NameValuePair
    Error:(143, 34) error: cannot find symbol class BasicNameValuePair
    Error:(144, 34) error: cannot find symbol class BasicNameValuePair
    Error:(145, 34) error: cannot find symbol class BasicNameValuePair
    Error:(148, 40) error: cannot find symbol class UrlEncodedFormEntity
    Error:(155, 17) error: cannot find symbol class HttpResponse
    Error:(157, 17) error: cannot find symbol class HttpEntity

    Wer kann mir hier weiterhelfen?