passwort ändern, kleines prob

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • passwort ändern, kleines prob

    PHP-Code:
    <?php
    $oldpw 
    $_POST["oldpw"];
    $newpw_1 $_POST["newpw_1"];
    $newpw_2 $_POST["newpw_2"];

    $oldpw_2 md5($oldpw);
    $newpw_1_2 md5($newpw_1);
    $newpw_2_2 md5($newpw_2);

    $userdatei fopen ("datei_wo_die_username_und_passwörter_drin_stehen.txt","r");
    while (!
    feof($userdatei))
    {
        
    $zeile fgets($userdatei,500);
        
    $userdata explode("|"$zeile);

        if (
    $userdata[0]==$username and $oldpw_2==trim($userdata[1]))
        {
            if (
    $newpw_1==$newpw_2)
            {
                echo
    "test erfolgreicher";
            }
            else
            {
                echo
    "passwörter nich identisch";
            }
        }
        else
        {
            echo
    "falsches passwort";
        }
    }
    fclose($userdatei);
    ?>
    mein problem ist, wenn ich das letzte else zutrifft, also das eingegebene passwort nicht mit dem in der textdatei gespeichertem passwort übereinstimmt, dann erhalte ich die meldung falsches passwort also
    falsches passwortfalsches passwort
    was mach ich falsch?
    thx schonmal im voraus
    EDIT:
    code neu formatiert. edited by asp2php.
    Zuletzt geändert von asp2php; 16.11.2004, 14:29.
    1123581321

  • #2
    du bekommst soviele Meldungen wie die Anzahl der Zeilen in der Datei. Wundert dich das?

    Kommentar


    • #3
      ja, dachte mir schon, dass es an dem while liegt.
      allerdings erkennt er die variablen nich wenn ich
      PHP-Code:
      $userdatei fopen ("datei_wo_die_username_und_passwörter_drin_stehen.txt","r");
      while (!
      feof($userdatei))
      {
          
      $zeile fgets($userdatei,500);
          
      $userdata explode("|"$zeile);

          if (
      $userdata[0]==$username and $oldpw_2==trim($userdata[1]))
          {
              if (
      $newpw_1==$newpw_2)
              {
                  echo
      "test erfolgreicher";
              }
              else
              {
                  echo
      "passwörter nich identisch";
              }
          }
          else
          {
              echo
      "falsches passwort";
          } 
      auserhalbe von dem while schreibe,...
      in anderen dateien hat das super funktioniert und ich hab keine ahnung wieso es diesmal nich geht....
      1123581321

      Kommentar


      • #4
        du kannst z.B. mit einem flag arbeiten, etwa so:
        PHP-Code:
        while (...) {
           if ... 
        // pw ist korrekt
                
        $flag false;
                ....
           else 
        //  pw nicht korrekt
                
        $flag true;
        }
        if (
        $flag) echo "wrong password";
        ... 

        Kommentar


        • #5
          thx, jetzt klappts allerdings schaff ich es nich das neue passwort durch das alte zu ersetzen und anschliesend geaendert wieder in die datei zu speicher, wo passwort und username drinstehn...
          hab da eiglt gar keine richtigen ansatz wie ich das anstellen soll..

          Kann mir da einer mal sagen wie ich das machen sollt ??
          mega thx im voraus...
          1123581321

          Kommentar


          • #6
            na, das machst du in dem Block:
            PHP-Code:
                    if ($newpw_1==$newpw_2)
                    {
                        
            // code hier ****
                        // echo"test erfolgreicher";
                    
            }
                    else 
            doch dafür brauchst du eine Laufvariable, um zu wissen in welcher Zeile der Datensatz gefunden wurde, etwa so:
            PHP-Code:
            $row 0;
            while (...) {
            ...
            ...
            ...
                
            $row++;
            // end while 
            nun was du in dem If-Block alles machen mußt:

            // nur Pseudo-Code für ****
            - aktuelle Datei schliessen
            - aktuelle Datei mit file einlesen
            - die Zeile mit dem Index $row in array umwandeln
            - Passwort mit neuem Passwort ersetzen
            - array wieder in String und der Zeile wieder zuweisen
            - die Datei mit Option 'w' öffen
            - Zeile für Zeile rein schreiben
            - Datei schliessen
            - break setzen um while zu beenden.

            So, nun darfst du Manual lesen (dabei User Contributed Notes auch) und selbst mal versuchen

            P.S.: Wenn du eine Datenbank als Backend hättest, würde es einfacher sein

            Kommentar


            • #7
              baoh, thx dass du mir hilfst naja also hab zwar begriffen wie du es meinst, allerdings weis ich jetzt nich wie ich das
              die Zeile mit dem Index $row in array umwandeln
              umsetzen soll..
              und ich finde leider nirgends etwas über
              array wieder in String und der Zeile wieder zuweisen
              also in einen string schon, aber nich einer zeile zuweisen??
              Zuletzt geändert von Enerkin; 16.11.2004, 22:22.
              1123581321

              Kommentar


              • #8
                zu1.: Frage: in deinem Code steht:
                PHP-Code:
                $zeile fgets($userdatei,500);
                $userdata explode("|"$zeile); 
                was ist $zeile? was ist dann $userdata? was hast du mit $zeile gamacht?
                -> 1. Problem beseitigt. Zusatzfrage: war der Code von dir?

                zu 2.: hast du den Syntax und die Verwendungsmöglichkeit von file im Manual durchgelesen? Was liefert file? Wie kann man ein bestimmtes Element von dem Ergebnis, was file liefert, ändern?

                wie sieht denn dein Versuch aus?

                Kommentar


                • #9
                  PHP-Code:
                                 <?php
                                      $oldpw 
                  $_POST["oldpw"];
                                      
                  $newpw_1 $_POST["newpw_1"];
                                      
                  $newpw_2 $_POST["newpw_2"];

                                      
                  $oldpw_2 md5($oldpw);
                                      
                  $newpw_1_2 md5($newpw_1);
                                      
                  $newpw_2_2 md5($newpw_2);
                                      
                  $a="1";

                                      
                  $userdatei fopen("user.txt","r");
                                      
                  $row 0;
                                      while (!
                  feof($userdatei))
                                            {
                                             
                  $zeile fgets($userdatei,500);
                                             
                  $userdata explode("|"$zeile);

                                             if (
                  $userdata[0]==$username and $oldpw_2==trim($userdata[1]))
                                                {
                                                 if (
                  $newpw_1==$newpw_2)
                                                    {
                                                     
                  fclose($userdatei);
                                                     
                  $lines file ('$row''user.txt');

                                                     
                  $usnpw = array($row => '$zeile');
                                                     
                  $userdata[1] == $newpw_1_2;
                                                     
                  $instring implode(""$usnpw);

                                                     echo
                  "test erfolgreicher";

                                                    }
                                                 else
                                                     {
                                                      echo
                  "passwörter nich identisch";
                                                     }
                                                }
                                             else
                                                 {
                                                  echo
                  "falsches passwort";
                                                 }
                                             
                  $row++;
                                             }


                  ?>
                  bis jetzt sieht es so aus...
                  allerdings kann ich mit deinen letzten 2 tipps leider nich allzuviel anfangen..
                  ja der code war von bzw, $zeile = fgets($userdatei,500);
                  $userdata = explode("|", $zeile);
                  war von ner website..
                  1123581321

                  Kommentar


                  • #10
                    So so ... sag mal weißt du denn eigentlich was du da tutst? IMHO nicht, oder?
                    PHP-Code:
                    if ($newpw_1==$newpw_2)
                       {
                        
                    fclose($userdatei); 
                        
                    // OK

                        
                    $lines file ('$row''user.txt');
                        
                    // was soll das werden? hast du gelesen, wie man file anwendet?

                        
                    $usnpw = array($row => '$zeile');
                        
                    // was willst du hiermit?

                        
                    $userdata[1] == $newpw_1_2;
                        
                    // wofür soll das gut sein?

                        
                    $instring implode(""$usnpw);
                        
                    // dito

                        
                    echo"test erfolgreicher";

                       } 
                    Warum liest du nicht? Wie soll man dir denn helfen, wenn du nicht an dich selbst arbeitest? Den fertigen Code bekommst du hier nicht! Also entweder du machst dich etwas schlau und versuchst den Code sinnvoll zu schreiben, ich helfe gerne dabei, jedoch ich muß erkennen können, dass du auch mitarbeitest, oder du machst ein Jobangebot daraus. Denn so kann man dir wirklich nicht helfen, sorry.

                    Kommentar


                    • #11
                      ja, ok tut mir leid, aber wenn ich dir sage dass ich nichts finde, dann könntest du mir doch anhand eines kleinen beispiels erklaeren wie ich
                      die Zeile mit dem Index $row in ein array umwandle, oder?
                      1123581321

                      Kommentar


                      • #12
                        erstmal sagst du mir:
                        1. den richtigen Syntax von file anhand eines Beispiels
                        2. was file dir liefert. Datentyp, Struktur, ...

                        Kommentar


                        • #13
                          PHP-Code:
                          $array_userdatei file('user.txt'); 
                          file liefert mir den inhalt der datei als ein array
                          ...
                          1123581321

                          Kommentar


                          • #14
                            sehr schön

                            Nun du hast eine Variable $row, die dir sagt, dass der Datensatz sich in der Zeile $row befindet.

                            Selektiere nun die Zeile und wandele den Inhalt der Zeile in ein Array um.

                            Kommentar


                            • #15
                              das isses ja was ich nich weis wie es geht, wie selektiere ich die zeile $row und wandle sie in ein array um??
                              1123581321

                              Kommentar

                              Lädt...
                              X