Ankündigung

Einklappen
Keine Ankündigung bisher.

Inset Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Inset Problem

    Guten Tag,

    wahrscheinlich wieder ein sehr simples Problem aber ich denke bei meiner ersten Homepage mit mysqli ist es klar, dass solche Probleme auftreten.

    Bei mir wird immer ausgegeben, dass es ein Problem mit der Datenbank gab (also !query trifft zu). An der Tabelle liegt es nicht und den logindaten auch nicht, da diese beim Loginscript super funktionieren. Wenn ich die Daten manuell eingebe, werden diese vom Loginscript auch akzeptiert. Demnach muss hier irgendwo der Fehler verborgen sein. Eine Ahnung wo?

    PHP-Code:
    $insert "INSERT INTO
                               tabelle(Benutzername, Passwort, Email)
                               VALUES
                               (
    $username$passwort$email)";

                    
    $query $db->query($insert);

                    if(!
    $query)
                    {
                        echo 
    "Fehler mit der Datenbank.";
                    }
                    else
                    {
                        echo 
    "Erfolgreich registriert!!!";
                    } 

  • #2
    Ja. Und Du? Mal die DB-eigene Fehlermeldung bemüht? Fehlerverarbeitung? Nö, wozu auch, man kann ja jeden Pups erfragen.

    Kommentar


    • #3
      Mach mal ein echo $insert, dann siehst du, dass du vermutlich die Anführungszeichen für deine Werte vergessen hast.

      Bitte debuggen, in dem du Variablen testweise mit var_dump() ausgibst.

      Falsch:
      Code:
      [..]
      VALUES (Peter, geheim, peter@example.com)
      Richtig:
      Code:
      [..]
      VALUES ('Peter', 'geheim', 'peter@example.com')
      Beachte, dass du deine Eingaben absichern musst:
      http://php.net/manual/de/function.my...ape-string.php

      Und dass man Passwörter als Hash ablegt:
      http://de.wikipedia.org/wiki/Hashfun..._Internetseite
      z.B. mit MD5 oder SHA1.

      Kommentar


      • #4
        Danke, ich programmiere nun nicht sehr lange und bin froh, dass ich schon so viel meistern kann. Wie man Probleme löst muss man eben auch erstmal lernen

        Kommentar


        • #5
          Wenn man also md5($passwort) zum Beispiel nutzt wird das Passwort geändert? Demnach muss ich es beim Login wieder entschlüsseln?

          Wenn ich folgendes mache kommen immer Errors:

          $username = $_POST['username'];
          $username = mysql_real_escape_string($username);

          Wisst ihr wieso? Und was genau geschieht eigentlich dort mit dem Usernamen? Er wird ja nicht verschlüsselt oder?

          Kommentar


          • #6
            Vermutlich machst du das bevor eine Verbindung zur mysql-DB besteht?! Aber ohne Fehlermeldungen können wir nur raten

            EDIT: md5 verschlüsselt nicht, sondern erstellt einen Hash. Das heisst beim Überprüfen entschlüsselst du nicht, sondern vergleichst den md5-Wert der Eingabe mit dem aus der DB.

            Kommentar


            • #7
              Lies dir doch bitte die Links durch, die ich dir gepostet habe, dann erübrigen sich die Fragen.

              Kommentar


              • #8
                md5 und Passwörter wird auch wirklich an jeder Ecke des Internets beschrieben. Ich schlage vor, Du lässt Dich hier nicht nur bedienen, sondern recherchierst mal selbst.

                Kommentar


                • #9
                  Und als Google Stichwort noch: SQL-Injection

                  Kommentar


                  • #10
                    mysql_real_escape_string sorgt dafür, dass "gefährliche" Zeichen nicht pur in die Datenbank geschrieben werden - sonst könnte man dein Eingabefeld nämlich missbrauchen und dem Datenbanksystem dahinter direkte Befehle übermitteln.

                    Aber, wie cycap schon schrieb, dazu muss die Verbindung mit der Datenbank schon hergestellt sein, denn mysql_real_escape_string braucht diese Datenbankverbindung für seine Arbeit.

                    Kommentar

                    Lädt...
                    X