md5 schreibt falsche Daten

Loddar1

Erfahrenes Mitglied
Hallo Leute,
ich möchte in einem Flatfile ein Passwort ändern, klappt soweit auch ganz gut
nur der md5 code stimmt nicht!
Habe ich da etwas in die falsche zeile gesetzt oder etwas vergessen?
Vielleicht kann mir ja einer von euch helfen,
hier mal der Code:
PHP:
<?php 
$userdatei="daten/data.db";
if (isset($_GET['nr'])) $nr = $_GET['nr'];
if (isset($_GET['action'])) $action = $_GET['action'];
if (isset($_GET['npw'])) $npw = $_GET['npw'];
if (isset($_GET['npw1'])) $npw1 = $_GET['npw1'];
if (!file_exists("$userdatei"))  fclose(fopen("$userdatei","r"));
$lines=file("$userdatei");
$num = sizeof($lines);
if ($action == "inhalt"){
if ($_POST[npw] == $_POST[npw1]){
for ($i = 0; $i < $num; $i++){
$entry = explode ("|", $lines[$i]);
if ($num = 1) {
if ($entry[0] == $nr)
$npw = md5($password);
$entry[2] = $npw;
$lines[$i] = implode($entry,"|");
}
}
}else{echo'Fehler!';}
}
if ($action == "updaten"):
?> 
<form action="index.php?page=edit&amp;nr=<?php echo $nr?>&amp;action=inhalt" method="post"> 
<fieldset><legend>Passwort &auml;ndern</legend> 
<input type="hidden" name="nr" value="<?php echo $nr?>" /> 
<p>Neues Passwort<br /><input type="password" name="pw" value="<?php $npw ?>" /></p> 
<p>Passwort wiederholen<br /><input type="password" name="pw1" value="<?php $npw1 ?>" /></p>
<p><input class="formulbut" type="submit" value="&Auml;ndern" /></p>
</fieldset></form>
<?php 
endif;
$fp = fopen("$userdatei","w+");
$num = sizeof($lines);
for ($i=0; $i < $num; $i++)
fwrite($fp, $lines[$i]);
fclose($fp);
if (!file_exists($userdatei))  fclose(fopen($userdatei,"r"));
$lines=file($userdatei);
$num = sizeof($lines);
if ($num > 0) {
$entry = explode ("|", $lines[0]);
$nr = $entry[0]; 
$pw = $entry[2];
echo "<p><a href=\"index.php?page=edit&amp;nr=$nr&amp;action=updaten&amp;pw=$pw\">Passwort &auml;ndern</a></p>";
}
?>

md5 schreibt immer: d41d8cd98f00b204e9800998ecf8427e
egal was ich eingebe.

Danke mal im vorraus...
 
Zuletzt bearbeitet:
Grüße,

also du versuchst den Inhalt der Variablen '$password' zu hashen. Das Problem dabei ist, dass die Variable nirgends mit einem Wert belegt wird. (zumindest seh ich das nicht).

Ansonsten mal einen var_dump($password) ausführen und das Ergebnis hier posten.
 
Hallo,

der Hash d41d8cd98f00b204e9800998ecf8427e ist der Hash einer leeren Zeichenkette ($password = '').
Also entweder ist dein Passwort wirklich eine leere Zeichenkette oder du hast diese Variable gar nicht definiert.
Dann solltest du aber auch eine Warnung von PHP erhalten. Füge mal ein error_reporting(E_ALL); in die erste Zeile ein!
 
Habe mir das mal durchgelesen und nachgeschaut wo '$password' herkommt,
habe den Fehler Dank der Hilfe von Sheel gefunden und jetzt funktioniert es richtig.

Danke noch mal an alle.
 
Zurück