03.07.2004, 19:35
Hallo,
ich bin gerade dabei zwei Webseiten zu programmieren. Beide mit PHP. Ich habe nun ein Passwort ändern Script programiert. Es klappt auch, aber nur wenn ich Zahlen verwende. Sobald ein Buchstabe in dem Passwort ist, speichert er es nicht in der Datenbank. :cry: Ich kann keinen Fehler finden. Ich bin aber auch noch ein ziemlicher Grünschnabel in PHP. Währe nett, wenn mir jemand helfen könnte.
AXEL
PS: Das Passwort wird als MD5 Hash in einer MySQL-Datenbank gespeichert.
Hier der Code:
[php:1]
<form name="aendern" action="<?php echo $PHP_SELF ?>" method="post">
<table>
<tr>
<td width="50%"><br><b>neues Passwort:</b></td>
<td width="50%"><br><input name="passwort_neu" type="text" size="40" maxlength="40"></td>
</tr>
<tr>
<td width="50%"><b>neues Passwort (wiederholung):</b></td>
<td width="50%"><input name="passwort_neu_2" type="text" size="40" maxlength="40"></td>
</tr>
<tr>
<td width="50%"><br><input type="submit" value="Änderung vornehmen" class="button"></td>
<td width="50%"><br><input type="reset" value="zurücksetzen" class="button"></td>
</tr>
</table>
</form>
<?php
$id = $_SESSION["user_id"];
$passwort_neu_2 = $HTTP_POST_VARS["passwort_neu_2"];
$passwort_neu = $HTTP_POST_VARS["passwort_neu"];
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("XXX", "XXX", "XXX");
mysql_select_db ("XXX", $connectionid) or die ("Keine Verbindung zur Datenbank");
if($passwort_neu == "")
{
echo "Bitte gebe ein neues Passwort an";
}
else
{
if($passwort_neu == $passwort_neu_2)
{
$sql = "UPDATE `benutzerdaten` SET `Kennwort` = MD5($passwort_neu_2) WHERE `Id` = $id";
mysql_query($sql);
echo "Dein Passwort wurde erfolgreich geändert.";//Ausgeben dass Passwort geändert wurde
}
else
{
echo "OOp's die wiederholung stimmt nicht mit dem neuen Passwort überein."; //Die neuen Passwörter stimmen nicht überein
}
}
?>
[/php:1]
ich bin gerade dabei zwei Webseiten zu programmieren. Beide mit PHP. Ich habe nun ein Passwort ändern Script programiert. Es klappt auch, aber nur wenn ich Zahlen verwende. Sobald ein Buchstabe in dem Passwort ist, speichert er es nicht in der Datenbank. :cry: Ich kann keinen Fehler finden. Ich bin aber auch noch ein ziemlicher Grünschnabel in PHP. Währe nett, wenn mir jemand helfen könnte.
AXEL
PS: Das Passwort wird als MD5 Hash in einer MySQL-Datenbank gespeichert.
Hier der Code:
[php:1]
<form name="aendern" action="<?php echo $PHP_SELF ?>" method="post">
<table>
<tr>
<td width="50%"><br><b>neues Passwort:</b></td>
<td width="50%"><br><input name="passwort_neu" type="text" size="40" maxlength="40"></td>
</tr>
<tr>
<td width="50%"><b>neues Passwort (wiederholung):</b></td>
<td width="50%"><input name="passwort_neu_2" type="text" size="40" maxlength="40"></td>
</tr>
<tr>
<td width="50%"><br><input type="submit" value="Änderung vornehmen" class="button"></td>
<td width="50%"><br><input type="reset" value="zurücksetzen" class="button"></td>
</tr>
</table>
</form>
<?php
$id = $_SESSION["user_id"];
$passwort_neu_2 = $HTTP_POST_VARS["passwort_neu_2"];
$passwort_neu = $HTTP_POST_VARS["passwort_neu"];
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("XXX", "XXX", "XXX");
mysql_select_db ("XXX", $connectionid) or die ("Keine Verbindung zur Datenbank");
if($passwort_neu == "")
{
echo "Bitte gebe ein neues Passwort an";
}
else
{
if($passwort_neu == $passwort_neu_2)
{
$sql = "UPDATE `benutzerdaten` SET `Kennwort` = MD5($passwort_neu_2) WHERE `Id` = $id";
mysql_query($sql);
echo "Dein Passwort wurde erfolgreich geändert.";//Ausgeben dass Passwort geändert wurde
}
else
{
echo "OOp's die wiederholung stimmt nicht mit dem neuen Passwort überein."; //Die neuen Passwörter stimmen nicht überein
}
}
?>
[/php:1]

