tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
210
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Loddar1 Loddar1 ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    97
    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-Code:
    <?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...
    Geändert von Loddar1 (18.11.11 um 17:46 Uhr)
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    Hi

    wo kommt denn beim md5-Befehl "$password" her?
    ...
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    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.
     
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

  4. #4
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    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!
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  5. #5
    Loddar1 Loddar1 ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    97
    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.
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 30.03.10, 17:40
  2. Funktionsaufruf der in DB schreibt...
    Von chillazz im Forum PHP
    Antworten: 9
    Letzter Beitrag: 25.02.09, 04:35
  3. C++ Programm, das in MS-Dos schreibt
    Von Bumbbleman im Forum C/C++
    Antworten: 10
    Letzter Beitrag: 11.01.09, 18:28
  4. Wie schreibt man das richtig
    Von son gohan im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 19.12.05, 17:18
  5. beim F5 drücken, schreibt es die Daten doppelt in die DB
    Von Knuddel im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 01.12.03, 12:54