MD5 Problem :-(

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

  • MD5 Problem :-(

    Hallo.

    Ich hoffe ihr könnt mir bei einem Problem Helfen.

    Das Anlegen eines Nutzers mit MD5 Passwort funktioniert super

    nun will ich dieses auslesen und vergleichen.

    Ich bekomme aber immer die Meldung Passwort falsch.

    Was kann ich noch machen, das es funktioniert oder habe ich einen Fehler unten drin?



    PHP-Code:
    <?php 
    session_start
    (); 
    ?> 
    <?php 
    require("Intern/Script/connect.inc.php");
    $username $_POST["username"]; 
    $passwort md5($_POST["password"]); 
    //$passwort = $_POST["password"];
    $abfrage "SELECT user, pass FROM users WHERE username LIKE '$username' LIMIT 1"
    $ergebnis mysql_query($abfrage); 
    $row mysql_fetch_object($ergebnis); 
    if(
    $row->passwort == $passwort
        { 
        
    $_SESSION["username"] = $username
        echo 
    "Login erfolgreich. <br> <a href=\"Benutzer.php\">Geschützer Bereich</a>"
        } 
    else 
        { 
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href=\"index2.php\">Login</a>"
        } 
    ?>

    Vielen Dank für Eure Hilfe,

    Lucil

  • #2
    Warum willst du das Passwort überhaupt auslesen? Warum machst du den Vergleich nicht direkt in der Datenbank?

    Dein Script ist übrigens anfällig für SQL Injections, eine der meist ausgenützten Sicherheitslücken.

    Kommentar


    • #3
      danke

      Vielen Dank für die schnelle antwort.

      Bin erst neu in PHP.

      Es wäre schön wenn man mir einen sicheren Weg zeigen könnte. Dachte es wäre so schon sicher.

      Vielleicht wäre ein kurzes Beispiel möglich. Würde bestimmt anderen auch Helfen.

      Vielen Dank.

      Kommentar


      • #4
        Bzgl. Injections wurde dir ein ausführlicher Artikel verlinkt.

        Den abgleich des Passwortes fügst du einfach in deine SQL-Query ein:

        AND pass = "' . $passwort . '"

        Übrigens, $row->passwort gibt es nicht. Das wäre dir auch selber aufgefallen, wenn du das error_reporting() auf E_ALL gestellt hättest, wie es in unseren Regeln steht!

        Kommentar


        • #5
          Wie mein Vorredner bereits sagte $row->passwort ist falsch. In deinem SELECT holst du das Feld pass. Somit müsste es $row->pass heissen (oder du sprichst im SELECT das falsche DB Feld an?!).

          Zum Thema SQL Injection solltest du dich allerdings noch informieren. Zunächst dürfte es aber reichen wenn du zu Beginn bei der Zuweisung zu $username die Funktion mysql_real_escape_string verwendest:
          PHP-Code:
          $username mysql_real_escape_string($_POST['username']); 
          Beachten musst du aber, dass evtl magic-quotes-runtime aktiviert ist. In diesem Fall ist es zunächst wichtig, stripslashes anzuwenden. Näheres dazu sollte aber auch google liefern oder eben der Link von weiter oben.
          not null blog - a developer's worries & solutions

          Kommentar


          • #6
            Vielen Dank

            Konnte das Problem nun lösen. In das SQL Problem werde ich mich einlesen.

            Bei dem anderen hatte ich nur vergessen zwei Variablen zu verknüpfen.

            Kommentar

            Lädt...
            X