Fehler beim Abfragen von Daten

  • PHP

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von xChRoNiKx.

    Fehler beim Abfragen von Daten

    Guten Morgen/Mittag ^^

    Ich versuche eine API für ein Account System zu Programmieren, in PHP.
    Da ich ein Anfänger bin was PHP an geht, weiß ich nicht was falsch ist. Ich habe mir auch schon die fehlerhaften Zeilen genauer angeschaut, aber ich weis nicht was falsch daran ist ?(

    Zur Funktion des Ganzen;
    Mit der db.php stelle ich eine Verbindung zu meiner Datenbank her, und mit der handler.php frage ich dann Info's ab.
    Sobald es erfolgreich wahr, also login oder register, dann wir eine 1 zurückgegeben, wenn es nicht erfolgreich war eine 0.

    db.php
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. $host = "localhost";
    3. $user = "name";
    4. $pass = "password";
    5. $data = "test";
    6. $con = new mysqli($host, $user, $pass, $data);
    7. if($con->connect_error)
    8. {
    9. printf("Connect failed: %s\n", $con->connect_error);
    10. }
    11. ?>


    handler.php
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. include('db.php');
    3. $action = $_GET['action'];
    4. $name = $con->real_escape_string($_GET['name']);
    5. $username = $con->real_escape_string($_GET['accountname']);
    6. $password = $con->real_escape_string(md5($_GET['password']));
    7. $mail = $con->real_escape_string($_GET['mail']);
    8. $id = $con->real_escape_string($_GET['id']);
    9. $description = $con->real_escape_string($_GET['description']);
    10. if(!$action)
    11. {
    12. echo "Plaese enter an action!";
    13. }
    14. else
    15. {
    16. if($action == "register")
    17. {
    18. if($query = $con->query("INSERT INTO nikinik (name, accountname,password, mail, id, description) VALUES ('$name', '$username', '$password', '$mail', '$id', '$description')"))
    19. {
    20. echo "1";
    21. }
    22. else
    23. {
    24. echo "0";
    25. }
    26. }
    27. else if($action == "login")
    28. {
    29. $query = $con->query("SELECT * FROM nikinik WHERE accountname = '$username' and password = '$password'");
    30. $cnt = $query->num_rows;
    31. if($ctn > 0)
    32. {
    33. echo "1";
    34. }
    35. else
    36. {
    37. echo "0";
    38. }
    39. }
    40. else
    41. {
    42. echo "Invalid action!";
    43. }
    44. }
    45. ?>


    Fehler Code;
    Spoiler anzeigen
    Notice: Undefined index: name in C:\xampp\htdocs\homechat\api\handler.php on line 7Notice: Undefined index: mail in C:\xampp\htdocs\homechat\api\handler.php on line 10Notice: Undefined index: id in C:\xampp\htdocs\homechat\api\handler.php on line 11Notice: Undefined index: des in C:\xampp\htdocs\homechat\api\handler.php on line 12Notice: Trying to get property 'num_rows' of non-object in C:\xampp\htdocs\homechat\api\handler.php on line 34Notice: Undefined variable: ctn in C:\xampp\htdocs\homechat\api\handler.php on line 36 0


    Grüße
    DerTuner

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DerTuner“ ()

    Du kannst den PHP Code auch hier ins Forum einfügen. So muss man nicht auf irgendwelche Seiten sich das anschauen.

    Hast du je einfach mal die Meldung(Ist kein Fehler sondern eine Notice wie man sieht) kopiert und in Google eingefügt ? Da werden dir sofort 10000te Ergebnisse geliefert die alle Erklären warum das so ist.
    Hier mal Grund: php-kurs.com/notice-undefined-index-meldung.htm
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Doch, bringt mich aber auch nicht weiter....
    ich hab jetzt mal Login und Register in zwei Dateien auf gesplittet. So kann ich die Fehler genauer erkennen.

    \/ Änderungen \/
    Login File:
    Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\xampp\htdocs\homechat\api\login.php on line 22
    hastebin.com/jovogunodi.xml

    Register File:
    Notice: Undefined index: des in C:\xampp\htdocs\homechat\api\regi.php on line 12
    hastebin.com/ivuciqeziq.xml
    Beim ersten Fehler hast du ein Semikolon bei der If-Abfrage das muss weg.

    PHP-Quellcode

    1. if($ctn > 0);


    Die Notice wird in meinem Link genau beschrieben. Das zu lesen und zu verstehen überlasse ich dir.

    EDIT// Desweiteren sollte man kein Md5 mehr verwenden.
    Hier ist mal Lektüre zum Thema Passwort von PHP: secure.php.net/manual/en/faq.passwords.php

    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „xChRoNiKx“ ()