ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
1156
1156
EMPFEHLEN
-
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.PHP-Code:<?
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>
-
Hi,
und den User mit der ID gibt es wirklich? Und du bist dir auch sicher das das Query ausgeführt wird?
gruß ne0hype
-
Ja, den User gibt es wirklich.
Und es wird *irgendein* Query ausgeführt, das ist ja das Problem.
konkretes Beispiel:
DB schaut so aus:
id benutzername passwort vorname nachname
---------------------------------------------
140 test blabla Test FILIALLEITER
Ich klicke auf Passwort generieren, die beiden Ausgaben geben folgendes aus:
Die DB sieht anschließend so aus:UPDATE user SET passwort = '0719a8fe97bb767134a59342d6f989e5' WHERE id = 140
UPDATE user SET passwort = '0719a8fe97bb767134a59342d6f989e5' WHERE id = 140
id benutzername passwort vorname nachname
---------------------------------------------
140 test d41d8cd98f00b204e9800998ecf8427e Test FILIALLEITER
Es wird also *irgendwie* nicht das Query, sondern ein anderes ausgeführt.. Ich versteh das einfach nicht
-
01.03.08 16:29 #4
Also, der Hash "d41d8cd98f00b204e9800998ecf8427e" steht für einen leeren String.
Sprich:
Wird dir genau diesen Hash ausgeben.PHP-Code:<?php
echo md5('');
?>
Dementsprechend ist aus irgendeinem Grund in deinem Query die Variable $pwd leer.
Hast du mal testweise mit einem Fixwert versucht zu arbeiten?KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
ja, hab ich versucht, und das hat auch nicht funktioniert. Aber immerhin weiß ich jetzt, dass der Wert für einen Leerstring steht. Trotzdem sehr seltsam.
-
Problem gelöst.. Weiter unten im Code hatte ich noch nicht korrekt auskommentierten PHP-Code, der dann den Leerstring in die DB geschrieben hat.. Lool

Trotzdem vielen Dank für eure Hilfe.
Ähnliche Themen
-
Allokiertes Array, 1. Wert falscher Wert
Von Nadriel im Forum C/C++Antworten: 9Letzter Beitrag: 28.07.10, 21:13 -
Vergleich mit Javascript, falscher Wert wird wiedergegeben
Von Gunah im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 12.06.09, 19:23 -
[MySQL] Falscher Wert COUNT()
Von boykottke im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 19.02.08, 00:45 -
[Vb.Net] .bat wird an einem falschen Ort gespeichert !
Von Maxro im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 12.07.07, 15:37 -
MySql Update keine Werte gespeichert
Von xppx im Forum PHPAntworten: 39Letzter Beitrag: 21.04.07, 10:44





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren