Ankündigung

Einklappen
Keine Ankündigung bisher.

passwort vergleich funktioniert leider nicht

Einklappen

Neue Werbung 2019

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

  • passwort vergleich funktioniert leider nicht

    Hallo, ich bins wieder also folgendes Problem:

    Ich hab eine einlogg seite, in der wird durch eine MySQL - Abfrage das passwort mit dem eingegeben passwort verglichen.

    PHP-Code:
        $check_name mysql_db_query($db_name"SELECT COUNT(*) FROM user WHERE name='".$_POST['username']."'");
        
    $anz mysql_num_fields($check_name);
            if(
    $anz == 0){
            
    header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php?user=log&wer=user&pass=wrong");
            }else{
            
    $search_sql mysql_db_query($db_name"SELECT password, name FROM user WHERE name='".$_POST['username']."'");
            
    $login_sql mysql_fetch_row($search_sql);} 
    Das passwort in der Mysql Datenbank is verschlüsselt abgespeichert wurden, 2.mal md5 und buchstaben umgedreht (strrev(); ).

    Das passwort was auf der startseite eingegeben wird wird auf der einloggseite auf die gleiche weite verschlüsselt

    PHP-Code:
            $pw md5($_POST['pw']);
            
    $pw md5($pw);
            
    $pw strrev($pw); 
    danach wird dieses mit dem aus der sql-datenbank verglichen über eine if() abfrage

    PHP-Code:
        if($pw == $login_sql[0]){echo "richtig";} 
    nun passiert folgendes, er sagt mir das das passwort falsch ist, obwohl es genau gleich ist, ich hab über eine echo abfrage geguckt ob beide passwörter gleich sind.

    wo könnte das problem sein?

    danke für ideen

  • #2
    Was steht denn in $login_sql[0] drin? Ist es tatsächlich der Eintrag mit dem Kennwort?
    [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
    [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

    Kommentar


    • #3
      Wird wohl so sein, weil er sich das bereits per echo ausgegeben hat.

      Is nur'n Versuch, aber teste mal diese Abfrage:
      PHP-Code:
      if(trim($pw) == trim($login_sql[0])) echo 'richtig'
      Vielleicht hängt bei einem der beiden ein Whitespace drin?
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        danke wunderbar das war die Lösung herzlichen dank

        Kommentar


        • #5
          Also, ohne das jetzt genau zu wissen oder geprüft zu haben. Meine Theorie ist die:

          mysql_num_fields gibt bei Deiner Abfrage

          Code:
          COUNT(*)
          immer ein Feld zurück. Ob es nun 0 Einträge oder 1 oder mehrere gibt.

          Wenn Du statt dessen fragst

          Code:
          SELECT ID FROM ....
          dann müßte Dein Result leer sein und mysql_num_fields tatsächlich 0 ergeben können.
          [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

          Kommentar


          • #6
            Ich stelle gerade fest, dass meine Antwort eigentlich nicht Dein Problem anspricht, wahrscheinlich aber dennoch ein Problem in Deinem Code aufwirft. Meiner Meinung nach kann $anz nie 0 annehmen.
            [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

            Kommentar


            • #7
              Dann gleich noch 2 Sachen:
              Dein Code ist anfällig für SQL Injection, und die "doppelte md5 mit gedrehten Buchstaben" Geschichte ist... naja, umständlich und ohne großen Nutzen. Ein einfach gesalzener Hash reicht völlig aus.
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                sag mir mal bitte ne bessere möglichkeit für die mysql geschichte an, was kann ich verbessern? Was soll ich wegen der md5 geschichte tun?

                Kommentar


                • #9
                  evtl. helfen dir folgende Stichpunkte:

                  gesalzene Passwörter
                  SQL Injection
                  real_escape
                  strip_tags

                  Kommentar


                  • #10
                    danke für die informativen seiten erstmal, kann einer von euch so lieb sein und mir hierein Beispielexemplar in PHP posten?
                    Bin mir echt unsicher wegen meiner seite wenn ich da gleich reinhaue und schlimmstenfalls alles verfuschen, ja es gibt die sicherungsmöglichkeit^^
                    Ich lern aber besser an Beispielen muss ich zugeben.

                    Kommentar


                    • #11
                      Ich finde die Links von bembelimen sind ziemlich ausführlich erklärt.
                      Ansonsten finden die Jungs von Google noch weitere informative Seiten, wenn man sie mit Stichworten füttert.
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar

                      Lädt...
                      X