Hilfe bei der md5-Funktion

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

  • Hilfe bei der md5-Funktion

    Hi mal wieder!

    Hab folgendes Problem: Ich habe ein Eingabefeld mit dem Namen password. Wenn ich jetzt auf den Submit-Button klicke, dann soll nun das eingegebene Passwort mit md5 verschlüsselt werden und mit dem bereits verschlüsseltem aus der Datenbank verglichen werden. Dies klappt leider nicht, bzw. ich kann jedes beliebige Passwort eingeben und das ist angeblich immer das Richte, was ja nun wirklich nicht seien kann. Hier mein Code:

    PHP-Code:
    <?php
        $query 
    = @mysql_query("SELECT pass FROM users WHERE pass = '".$_POST[md5 ('oldpass')]."'");
        
    $result = @mysql_fetch_array($query);
        if(
    $result['pass'] == $_POST[md5 ('oldpass')]) {
                if (
    $_POST['newpass'] == $_POST['newpass2']) {
                    echo 
    '<p align="center">Alles klar! Aber kann das sein?!<br><br><a href="config_pass.php">Zur&uuml;ck</a></p>';
                }else{
                    echo 
    '<p align="center">Ihr neues und ihr wiederholtes neues Passwort stimmen nicht miteinander überein! Bitte wiederholen sie ihre Eingabe!<br><br><a href="config_pass.php">Zur&uuml;ck</a></p>';

                }
        }else{    
            echo 
    '<p align="center">Ihr altes Passwort ist nicht korrekt! Bitte wiederholen sie ihre Eingabe!<br><br><a href="config.php">Zur&uuml;ck</a></p>';
        }
    }
    ?>
    Da wo das erste if steht muss der falsche Code seien. Ich weiß aber nicht wie ich das anders machen soll .
    Freu mich natürlich über jede Hilfe, bis denn, Tom

  • #2
    was ist denn das für ein müll ?

    $_POST[md5 ('oldpass')]

    mache mal so:

    md5($_POST['oldpass'])

    oder noch besser direkt in der DB

    PHP-Code:
    $sql "... WHERE pass = MD5('".$_POST['oldpass']."')"

    achtung das MD5() ist DB und das md5() ist php
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Alles klar! Klappt jetzt perfekt! Aber woher sollte ich auch wissen, dass das Falsch ist, wenn ich keine Fehlermeldung bekomme? Bin ja echt nen absoluter Anfänger!

      Bis denn, Tom

      Kommentar


      • #4
        vom syntax her war es auch nicht falsch. nur unsinnsig.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          dann lass das @ vorm query weg, dann bekommst du auch ne fehlermeldung. besser noch mysql_error() einsetzen.
          [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

          Kommentar


          • #6
            Original geschrieben von Abraxax
            oder noch besser direkt in der DB

            PHP-Code:
            $sql "... WHERE pass = MD5('".$_POST['oldpass']."')"
            Davon würde ich abraten. So muss der String nämlich noch escaped werden, sonst ist eine SQL Injection möglich.
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              ok. ein addslashen drumrum sollte ja noch machbar sein...
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Machs einfach so.
                PHP-Code:
                <?php
                    $query 
                mysql_query("SELECT COUNT(*) as users FROM users WHERE pass = '".md5($_POST['oldpass'])."'");
                    
                $result mysql_fetch_array($query);
                    if(
                $result['user'] == 1) {
                            if (
                $_POST['newpass'] == $_POST['newpass2']) {
                                echo 
                '<p align="center">Alles klar! Aber kann das sein?!<br><br><a href="config_pass.php">Zur&uuml;ck</a></p>';
                            }else{
                                echo 
                '<p align="center">Ihr neues und ihr wiederholtes neues Passwort stimmen nicht miteinander überein! Bitte wiederholen sie ihre Eingabe!<br><br><a href="config_pass.php">Zur&uuml;ck</a></p>';

                            }
                    }else{    
                        echo 
                '<p align="center">Ihr altes Passwort ist nicht korrekt! Bitte wiederholen sie ihre Eingabe!<br><br><a href="config.php">Zur&uuml;ck</a></p>';
                    }
                }
                ?>
                [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                © Harald Schmidt

                Kommentar


                • #9
                  huiii!! was ist denn das?! Sorry, aber kenn momentan noch net sooo super viele Befehle. Wo ist denn der Vorteil von SELECT Count (*)?? Und warum sollte das md5 jetzt doch wieder direkt vor das $_POST anstatt vor das Hochkomma und die Anführungsstriche??! Und was heißt
                  So muss der String nämlich noch escaped werden, sonst ist eine SQL Injection möglich.
                  Wie gesagt, bin ich noch nen blutiger Anfänger... aber irgendwann schaff ich das auch noch.
                  Bis denne, Tom


                  p.s.: nochmals Danke! Echt nen super Forum! Bzw. nen echt gutes Forum mit super Leuten!!

                  Kommentar


                  • #10
                    Da das sonst, als String angesehen. Der BEfehl wird nicht ausgeführt!
                    Für Rechtschreibfehler übernehme ich keine Haftung!

                    Kommentar

                    Lädt...
                    X