tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
213
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
    Schönen Sonntag,
    Ich möchte in einer Datei nur das Passwort vom Admin ändern also ID 1,
    klappt auch wunderbar soweit,
    nur ist der Rest der Datei nicht mehr vorhanden.
    Die Datei sieht so aus:

    1|Admin|7651320fc8fd972af966e40752ddcecc|Administrator|
    2|Beta|e22a63fb76874c99488435f26b117e37|Betaname|beta@mail.de|
    3|Gamma|f26b117e37874c99488435s84b117e47|Gammaname|gamma@mail.de|
    usw.

    Mein code zum ändern des Passwortes so:
    PHP-Code:
    <?php
    if (isset($_GET['action'])) $action $_GET['action'];
    if(
    $_SESSION['username']=='Admin'){
    $uid $_POST["uid"];
    $username $_POST["username"];
    $password $_POST["passwort"];
    $password2 $_POST["passwort2"];
    $realname $_POST["realname"];
    $email $_POST["email"];
    $isuser = array();
    $passwort md5($password);
    $userdatei fopen ("verz/daten.db","r");
    while (!
    feof($userdatei)){
    $dat fgets($userdatei,500);
    $userdaten explode("|"$dat);
    array_push ($isuser,$userdaten[1]);}
    fclose($userdatei);
    if (
    $action == "save"){
    if (
    $password == $password2){
    $userdatei=file("verz/daten.db");
    $num sizeof($lines);
    if (
    $num) {
    $entry explode ("|"$lines[$num-1]);
    $uid $entry[0]+1;
    } else 
    $uid 1;    
    $userdatei fopen ("verz/daten.db","w");
    rewind($userdatei);
    fwrite($userdatei"1");
    fwrite($userdatei"|");
    fwrite($userdatei"Admin");
    fwrite($userdatei"|");
    fwrite($userdatei$passwort);
    fwrite($userdatei"|");
    fwrite($userdatei"Administrator");
    fwrite($userdatei"|");
    fwrite($userdatei"\n");
    fclose($userdatei);
    }else echo
    'Die Passwörter stimmen <strong>nicht</strong> überein!';
    }
    $userdatei fopen ("verz/daten.db","r");
    while (!
    feof($userdatei)){
    $dat fgets($userdatei,2);
    $userdaten explode("|"$dat);
    array_push ($isuser,$userdaten[1]);}
    fclose($userdatei);
    ?>
    <form action="index.php?page=edit&amp;action=save" method="post">
    <p>Passwort:<br />
    <input  type="password" size="35" name="passwort" value="" /></p>
    <p>Passwort wiederholen:<br />
    <input  type="password" size="35" name="passwort2" value="" /></p>
    <p><input class="formulbut" type="submit" value="&Auml;ndern" /></p>
    </form> 
    <?php
    ?>
    Sieht einer von euch warum nur die Zeile die ich eingebe nach dem Passwort ändern zu sehen ist?

    Danke im voraus freue mich über jede Hilfe
     

  2. #2
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Hallöle,

    das ist eigentlich ein ganz einfacher Patzer, der dir da unterlaufen ist - und zwar in dieser Zeile:
    PHP-Code:
    $userdatei fopen ("verz/daten.db","w"); 
    Dadurch, dass du das File im Modus "w" öffnest, wird deren Inhalt gelöscht und der Zeiger auf den Dateianfang gesetzt.
    Was du suchst, dürfte der Modus "a" bzw. "a+" sein.

    PHP-Code:
    $userdatei fopen ("verz/daten.db","a"); 
    Hier mal noch ein Link zum Nachlesen: fopen

    Da fällt mir auch noch was anderes ein:
    Du solltest in dem Falle vllt. versuchen, die entsprechende Zeile in der Datei erst zu suchen, dann zu löschen und dann erneuert wieder einzufügen, denn ein "Update" im eigentlichen sinne wird nicht möglich sein - nur doppelte Einträge....
    Geändert von Alex_T (13.11.11 um 18:33 Uhr)
     
    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)

  3. #3
    Loddar1 Loddar1 ist offline Mitglied Silber
    Registriert seit
    May 2007
    Beiträge
    97
    Danke Alex,
    und wie macht man das mit dem Filtern?
    werde es erstmal selbst probieren, wie bei einem Gästebuch eintrag editieren.
     

Ähnliche Themen

  1. MySQL daten werden nicht gelöscht :(
    Von BerlinerBaer im Forum PHP
    Antworten: 7
    Letzter Beitrag: 30.09.07, 01:20
  2. Antworten: 1
    Letzter Beitrag: 07.10.06, 15:51
  3. Durch "Aktualisieren" werden Daten doppelt eingetragen
    Von tayke im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 06.06.06, 04:09
  4. Antworten: 3
    Letzter Beitrag: 26.02.04, 11:42
  5. Antworten: 14
    Letzter Beitrag: 06.06.02, 18:39