Loading...   Upload Image

problem mit passwort ändernForum » Webzone » PHP & MySQL » problem mit passwort ändern

Neues Thema verfassen Neues Thema

  • rapidhunterUser ist offline
    Newbie



    Registriert: 27.01.2012
    Beitraege: 15

    07.03.2012 um 16:20 Uhr

    hallo,

    ich habe mal wieder ein problem und hoffe ihr knnt mir weiterhelfen. ich habe ein loginscript mit neuen benutzer anlegen und passwort vergessen funktion aber ich bekomm es einfach nicht hin das man sein passwort wenn man eingeloggt ist ndern kann.

    hier mal der code fr die passwort ndern seite:

    <?php include ("../include/header.php"); ?>
    <?php if(!isset($_SESSION['user_id'])) { ?>
    <?php
    }
    else if ( false===($errors=validateInput()) ) {
        
        $queryParms['user_id'] = mysql_real_escape_string($_SESSION['user_id']);
        $queryParms['oldPW'] = md5($_POST['oldPW']);
        $queryParms['newPW'] = md5($_POST['newPW']);
        
        $query = "UPDATE benutzerdaten SET passwort='".md5($queryParms['newPW'])
                ."' WHERE id='".$queryParms['user_id']
                ."' AND passwort='".md5($queryParms['oldPW'])."'";
        mysql_query($query) or die('Fehler beim Eintragen der neuen Werte');
        
        if (1!=mysql_affected_rows())
        {
            $errors = array();
            $errors['oldPW'] = 'Ihr altes Passwort stimmt nicht';
        }
        else
            echo 'Passwort wurde gendert';
    }
    
    if (false!==$errors) { ?>
            <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
                  <tr>
                    <td bgcolor="#e7e7e7" align="center" colspan="2">
                        &Auml;ndern des Passwortes fr Benutzer <?php echo $_SESSION['user_id']; ?>
                    </td>
                  </tr>
                  <tr>
                    <td width="170" bgcolor="#e7e7e7">bisheriges Passwort</td>
                    <td width="230" bgcolor="#ffffff">
                        <input type="password" name="oldPW" size="20" class="input" />
                        <?php if (isset($errors['oldPW'])) echo '', $errors['oldPW']; ?>
                    </td>
                  </tr>
                  <tr>
                    <td width="170" bgcolor="#e7e7e7">neues Passwort</td>
                    <td width="230" bgcolor="#ffffff">
                        <input type="password" name="newPW" size="20" class="input" />
                        <?php if (isset($errors['newPW'])) echo '
    ', $errors['newPW']; ?>
                    </td>
                  </tr>
                  <tr>
                    <td width="170" bgcolor="#e7e7e7">neues Passwort wiederholen</td>
                    <td width="230" bgcolor="#ffffff">
                        <input type="password" name="repeatPW" size="20" class="input" />
                        <?php if (isset($errors['repeatPW'])) echo '
    ', $errors['repeatPW']; ?>
                    </td>
                  </tr>
                  <tr>
                    <td bgcolor="#e7e7e7" align="center" colspan="2">
                        <input type="submit" name="submit" value="Anmelden" class="button" />
                    </td>
                  </tr>
                </table>
            </form>
    <?php
    }
    
    
    function validateInput()
    {
        if ( !isset($_POST['oldPW']) || !isset($_POST['newPW']) || !isset($_POST['repeatPW']) )
            return array();
    
        $retval = array();    
        if(5 > strlen($_POST['newPW']))
            $retval['newPW'] = 'Das Passwort ist zu kurz';
        
        if($_POST['newPW'] !== $_POST['repeatPW'])
            $retval['repeatPW'] = 'Die "Wiederholung" des Passwortes unterscheidet sich von der ersten Eingabe';
    
        return (empty($retval)) ? false : $retval;
    }
    ?>


    in der ersten zeile ist der header include. darin sind die dateien fr die verbindung zur datenbank und zur session user_id.

    Wenn ich jetzt das passwort ndern will dann bekomm ich stndig das ich bei dem alten passwort ein falsches angegeben habe was aber nicht der fall ist!!

    mfg



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    07.03.2012 um 20:27 Uhr

    Hallo,

    warum du berechnest den MD5-Hash von $queryParms['oldPW'] doppelt und zwar in Zeile 8 sowohl als auch in Zeile 13? ;)

    Reicht einmal nicht?

    Liebe Gruesse
    Alice



    ... { signatur } ...

[ 1 ] Seite 1 von 1


       ALL-INKL.COM - Webhosting Server Hosting Domain Provider