Hallo zusammen!
Ich habe ein kleines PHP-Skript geschrieben, das für einen User ein neues Passwort generiert, diesem per Mail zuschickt und es md5-verschlüsselt in die Datenbank speichert.
Eigentlich sollte das Ganze kein Problem sein, allerdings tritt bei mir ein seltsames Problem auf: Anstatt des verschlüsselten Passwortes wird in der DB immer der Wert 'd41d8cd98f00b204e9800998ecf8427e' gespeichert, unabhängig davon, welches Passwort generiert wird.
Die beiden Ausgaben der Variable $gensql vor und nach dem Query geben allerdings den richtigen Query-String mit dem generierten Passwort aus.
Ich hoffe wirklich, jemand kann mir helfen, da ich schon seit geraumer Zeit versuche, das Problem zu lösen, aber einfach keinen Fehler erkennen kann.
Hier der notwendige Cocde:
Vielen Dank schon im Voraus für eure Mühen.
Ich habe ein kleines PHP-Skript geschrieben, das für einen User ein neues Passwort generiert, diesem per Mail zuschickt und es md5-verschlüsselt in die Datenbank speichert.
Eigentlich sollte das Ganze kein Problem sein, allerdings tritt bei mir ein seltsames Problem auf: Anstatt des verschlüsselten Passwortes wird in der DB immer der Wert 'd41d8cd98f00b204e9800998ecf8427e' gespeichert, unabhängig davon, welches Passwort generiert wird.
Die beiden Ausgaben der Variable $gensql vor und nach dem Query geben allerdings den richtigen Query-String mit dem generierten Passwort aus.
Ich hoffe wirklich, jemand kann mir helfen, da ich schon seit geraumer Zeit versuche, das Problem zu lösen, aber einfach keinen Fehler erkennen kann.
Hier der notwendige Cocde:
PHP:
<?
function generatePassword($length = 8)
{
$possibleChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
srand((double)microtime() * 1000000); // Zufallsgenerator auf Startwert setzen
$password = "";
for($i = 0; $i < $length; $i++)
{
$randval = rand(0, strlen($possibleChars));
$password .= $possibleChars[$randval];
}
return $password;
}
?>
<form name="passwordform" action="main.php?site=generate_password&id=<? echo $_GET['id']; ?>" method="post">
<table>
<?
if(isset($_POST['senden']))
{
$pwd = generatePassword();
$gensql = "UPDATE user SET passwort = '" . md5($pwd) . "' WHERE id = " . $_GET['id'];
echo $gensql;
if($query = mysql_query($gensql))
{
echo $gensql;
?>
<tr class="text" height="40px" valign="center">
<td colspan="2"><b>Das Passwort wurde erfolgreich geändert.</b></td>
</tr>
<?
} else
{
?>
<tr class="text" height="40px" valign="center">
<td colspan="2"><b>Fehler: Das Passwort konnte nicht geändert werden.</b></td>
</tr>
<?
}
} else
{
?>
<tr height="30px"><td></td></tr>
<?
}
?>
<tr class="text">
<td colspan="2">
Beim Klicken auf den Button wird ein 8 Zeichen langes Passwort generiert, das aus Kleinbuchstaben, Großbuchstaben und Ziffern besteht.
</td>
</tr>
<tr height="40px" valign="center">
<td colspan="2" align="center">
<input type="submit" name="senden" value="Passwort generieren" />
</td>
</tr>
</table>
</form>
Vielen Dank schon im Voraus für eure Mühen.