1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

MYSQL und android

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Trancegott, 04.07.2012.

  1. Trancegott, 04.07.2012 #1
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    0
    Registriert seit:
    12.02.2012
    Ich weiß, es ist eigentlich nicht das richtige Forum, aber kann mir jemand sagen was hierdran:
    PHP:
    <?php
        mysql_connect
    ("servername","name","passwort");
        
    mysql_select_db("dbname");
        
    $name $_GET["name"];
        
    $points $_GET["points"];
    $query "UPDATE highscore SET points=".$points." WHERE name='".$name."'"
      
          
        
    mysql_query($query);     
        
    mysql_close();
    ?>
    falsch ist?
    ich versuche das ganze mit
    Code:
    http://.../write.php?name=%22Alexa%20Bomkamp%22&points=%22100
    aufzurufen.
    Es kommt keine Fehlermeldung, aber in der Datenbank tut sich einfach nichts.

    Danke im Vorraus.
     
  2. ko5tik, 04.07.2012 #2
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Habe nicht viel Ahnung von PHP, aber das was du da tust scherit gerade nach SQL-Injection ...
     
  3. Tom299, 04.07.2012 #3
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Ich kenn mich mit PHP auch nicht aus, aber mein Arbeitskollege meinte, erst mal error_reporting aktivieren, damit du evtl. Fehler siehst.

    Und am Beispiel bei php.net sieht man, daß man nach dem connect eine resource bekommt, die kann man schon mal abfragen und auch beim select_db mitgeben:

    Code:
    <?php
    
    $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Verbindung nicht möglich : ' . mysql_error());
    }
    
    // benutze Datenbank foo
    $db_selected = mysql_select_db('foo', $link);
    if (!$db_selected) {
        die ('Kann foo nicht benutzen : ' . mysql_error());
    }
    ?>
    
     
  4. Thyrion, 04.07.2012 #4
    Thyrion

    Thyrion Ehrenmitglied

    Beiträge:
    11,845
    Erhaltene Danke:
    2,450
    Registriert seit:
    21.07.2009
    Phone:
    Nexus 5X
    Ich habe von PHP auch keine Ahnung, aber müsste dann nicht in $name "Alexa Bomkamp" (inkl. Anführungszeichen) und in $points "100 (ebenfalls inkl. Anführungszeichen und auch nur eins) stehen? Falls ja, dann ist $points kein Integer, weswegen dein Update nicht klappen kann.

    EDIT: Dein zusammengesetztes Update sieht ja so aus
    PHP:
    UPDATE highscore SET points="100 WHERE name='"Alexa Bomkamp"'
    Versuch's mal ohne die %22 :smile:
     
    Zuletzt bearbeitet: 04.07.2012
  5. DieGoldeneMitte, 04.07.2012 #5
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Bitte, bitte, BITTE, keine SQL Befehle mit Stringkonkatenation zusammen bauen.
    Das schreit nach unabsichtlicher (Alexanda 'Ducklip' Bohmkamp) oder absichtlicher (Alexandra';DROP table highscore;--) SQL-Injection.

    Man sollte IMMER mit prepared Statents arbeiten: PHP: Prepared Statements und Stored Procedures - Manual

    Siehe auch: https://xkcd.com/327/
     
    Zuletzt bearbeitet: 04.07.2012

Diese Seite empfehlen