passwort ändern, kleines prob

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.
    Last edited by asp2php; 16-11-2004, 14:29.
    1123581321

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

    Comment


    • #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

      Comment


      • #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";
        ... 

        Comment


        • #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

          Comment


          • #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

            Comment


            • #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??
              Last edited by Enerkin; 16-11-2004, 22:22.
              1123581321

              Comment


              • #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?

                Comment


                • #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

                  Comment


                  • #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.

                    Comment


                    • #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

                      Comment


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

                        Comment


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

                          Comment


                          • #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.

                            Comment


                            • #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

                              Comment

                              Working...
                              X