problem mit passwort ändernForum » Webzone » PHP & MySQL » problem mit passwort ändern
-
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"> Ä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
-
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