Passwort ändern in MYSQL über php script

  • geschlossen
  • MySQL

  • Free.Softler
  • 3850 Aufrufe 4 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Passwort ändern in MYSQL über php script

    Halloa ihrs =)

    ich bin am Ende meines Wissens (Gut, ist nicht viel vorhanden).. nach nun gut 10 Stunden googeln und ausprobieren ist nichts lauffähiges bei raus gekommen, deshalb frag ich mal hier =)

    Ein Login-Script ist fertig und lauffähig, dieses schreibt folgende Werte (hab nur die relevanten zum Passwort ändern aufgelistet) in eine Session

    // Sessionvariablen erstellen und registrieren
    $_SESSION['user_id'] = $data['Benutzer_Id'];
    $_SESSION['user_nickname'] = $data['Nickname'];


    Die Benutzer-Id ist per phpmyadmin auf "auto_increment" gestellt und somit für jeden User individuell

    Nun zum Passwort ändern hab ich mir vom Prinzip nen ganz einfaches Script überlegt:

    Datenbankzugang
    2 Eingabefelder bestehend aus "Passwortneu" und "Passwortneu wiederholen"
    PHP-Verarbeitung
    Ausgabe: Passwort wurde erfolgreich geändert else Passwort wurde falsch eingegeben

    Geht dann so los: Dateiname: changepw.php

    <html>
    <head>
    </head>
    <body>
    <?php

    // Datenbankverbindung aufbauen
    $connectionid = mysql_connect ("localhost", "xxx", "xxx");
    if (!mysql_select_db ("xxx", $connectionid))
    {
    die ("Keine Verbindung zur Datenbank");
    }


    ?>

    <form action="zu welcher php Datei muss man hier denn verlinken?.php" method="post">
    Kennwortneu: <input type="password" name="pass1" size="20"><br>
    Kennwortneu wiederholen: <input type="password" name="pass2" size="20"><br>
    <input type="submit" value="change">
    </form>


    <?php

    Ja und jetzt die Verarbeitungsgeschichte.. soviel heut rumprobiert und nichts bei rausgekommen..
    Liegt eben auch daran, dass ich echt total neu in dem Gebiet bin..
    ich lass es mal leer, bitte nicht negativ auffassen -> will echt was lernen :P
    Bei der Verarbeitung würd ich auch gleich die If-Else Clause für die Ausgabe mit einbauen

    ?>
    </body>
    </html>


    Danke schonmal für jede Hilfe, die ich von euch bekomm :)
  • meines erachtens ist der aufbau deines dokumentes etwas ungünstig.
    ich hab mir die freiheit genommen es umzubauen, ich hoffe es erklärt sich anhand der codes warum

    PHP-Quellcode

    1. <?php
    2. $connectionid = mysql_connect ("localhost", "xxx", "xxx");
    3. mysql_select_db ("xxx", $connectionid) or die ("Keine Verbindung zur Datenbank"); // verkürste schreibweise
    4. if(isset($_POST['pass1'])){// wurde das formular abgeschick
    5. if($_POST['pass1'] == $_POST['pass2']){// kommt die überprüfung, ob beides gleich ist
    6. $sql = "UPDATE
    7. `xxx`
    8. SET
    9. `Passwort` = '".$_POST['pass1']."'
    10. WHERE
    11. `Benutzer_Id` = ".$_SESSION['user_id']; //es folg der mötige sql syntax
    12. $result = mysql_query($sql) or die('cannot change password:<br>'.mysql_error()); // mit eintragen ind die db
    13. $content = 'Passwort wurde ge&auml;ndert';//und der ausgabe
    14. }
    15. else
    16. $content = 'Passwort wurde falsch eingegeben';//wenns nicht übereinstimmt
    17. }
    18. else{ // wenn das formular nicht abgeschickt wurde
    19. $content = '<form action="#" method="post">';
    20. $content.= 'Kennwortneu: <input type="password" name="pass1" size="20"><br>';
    21. $content.= 'Kennwortneu wiederholen: <input type="password" name="pass2" size="20"><br>';
    22. $content.= '<input type="submit" value="change">';
    23. $content.= '</form>';
    24. }
    25. $html = '<html>';
    26. $html.= '<head>';
    27. $html.= '</head>';
    28. $html.= '<body>';
    29. $html.= $content;// eingliederung in deine ausgabe
    30. $html.= '</body>';
    31. $html.= '</html>';
    32. echo $html;
    33. ?>
    Alles anzeigen

    EDIT:
    direkt vergessen zu sagen^^
    ich habs nicht getestet, kann also fehler enthalten

    edit2:
    Soetwas ist ganz schön gefährlich: SQL injection - Wikipedia, the free encyclopedia
    Entweder, du bringst hier noch PHP: addslashes - Manual ein oder arbeitest generell mit Hash, was für den Fall, jmd bekommt Einblick in deine DB, sicherer ist.
    <ot>MD5 ist alt und überholt, ich würde dir zu sha256 raten. PHP: hash - Manual </ot>

    ich hatte überlegt, ob ich das noch mit reinnehme, habs dann aber gelassen, da ich den eindruck hatte, dass Free.Softler relativ neu auf dem gebiet php ist.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von corema ()

  • SQL-Abfrage

    1. UPDATE
    2. `xxx`
    3. SET
    4. `Passwort` = '".$_POST['pass1']."'
    5. WHERE
    6. `Benutzer_Id` = ".$_SESSION['user_id']

    Soetwas ist ganz schön gefährlich: SQL injection - Wikipedia, the free encyclopedia
    Entweder, du bringst hier noch PHP: addslashes - Manual ein oder arbeitest generell mit Hash, was für den Fall, jmd bekommt Einblick in deine DB, sicherer ist.
    <ot>MD5 ist alt und überholt, ich würde dir zu sha256 raten. PHP: hash - Manual </ot>

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword ()

  • Heyo,
    danke für eure Hilfe,
    werd mich jetzt ransetzen des in meine Seite zu integrieren :)
    Was haltet ihr von MYSQL für Dummies (MySQL 4) als Lektüre? - Hab des gestern hier aus dem Forum bekommen, find des als Einstieg (hab leider keinen Vergleich) doch ganz gut :)