passwort ändern, kleines prob

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

  • #16
    1. file liefert dir ein Array und $row ist ein Index, also wie liest man den Inhalt eines Elements des Arrays aus, wenn man den Index kennt?
    2. schau dir mal an, was implode macht

    Kommentar


    • #17
      danke
      dann siehts das so aus oder?
      PHP-Code:
        if ($newpw_1==$newpw_2)
                                        {
                                         
      fclose($userdatei);
                                         
      $array_userdatei file('user.txt');
                                         
      $zeilemitpw implode($row$array_userdatei);
                                         
      $zeilemitpw == "$username|$newpw_1_2\n"//altes pw mit neuem ersetzen..


                                         
      $instring implode(""$usnpw);

                                         echo
      "test erfolgreicher";

                                        } 
      was kommt nun??
      1123581321

      Kommentar


      • #18
        sag mal, testest du nicht? soll ich das für dich tun?

        außerdem machst du ja nichts mit $array_userdatei = file('user.txt'); wofür hast du dann eingelesen? lies mein Posting von vorhin nochmals.

        btw: achte bitte darauf, daß dein Code nicht zu weit nach rechts rutscht, ich habe keine Lust zu scrollen

        Kommentar


        • #19
          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 (
          $oldpw_2==trim($userdata[1]))
                                                   {
                                                   if (
          $userdata[0]==$username)
                                                     {
                                                      if (
          $newpw_1==$newpw_2)
                                                         {
                                                          
          $a="0";
                                                         }
                                                     }
                                                    }
                                                    
          $row++;
                                                }
                              
          fclose($userdatei);



             if (
          $a=="0")
                {
                 
          $array_userdatei file('user.txt');
                 
          $zeilemitpw implode($row$array_userdatei);
                 echo
          "vorher: $zeilemitpw";
                 
          $zeilemitpw == "$username|$newpw_1_2\n";
                 echo
          "nachher: $zeilemitpw";
                }
                 else
                     {
                      echo
          "falsches pw";
                     }

             if (
          $a=="1")
                {
                 echo
          "flasches pw";
                }


          ?>
          naja hab den code etwas geaendert weil es immer fehlermeldungen gab...
          hab das ganze dann mal getestet und jetzt zeigt er mir die ganze datei user.txt an und vor und nach jedem username mit pw zeigt er eine 8 mit an...
          die echos hab ich zum testen erstmal reingetan...
          eiglt sollte er doch nur die zeile mit dem pw anzeigen oder??

          außerdem machst du ja nichts mit $array_userdatei = file('user.txt'); wofür hast du dann eingelesen?
          schau doch genau...
          1123581321

          Kommentar


          • #20
            lies nochmals
            Original geschrieben von asp2php
            1. file liefert dir ein Array und $row ist ein Index, also wie liest man den Inhalt eines Elements des Arrays aus, wenn man den Index kennt?
            weißt du eigentlich was ein Array ist?
            EDIT:
            warum nimmst du das Teil aus dem If-Block raus? wasfür Überlegungen steckt dahinter?

            bitte dringend www.schattenbaum.net/php durchlesen.

            Zuletzt geändert von asp2php; 17.11.2004, 14:30.

            Kommentar


            • #21
              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)
                                            {
                                             if (
              $oldpw_2==trim($userdata[1]))
                                             {
                                             if (
              $newpw_1==$newpw_2)
                                                {

                                                 
              $array_userdatei file('user.txt');
                                                 
              $usnpw $array_userdatei[$row]; //zeile mit username und pw
                                                 
              $pwreplace "$username|$newpw_1_2"//passwort ersetzen
                                                 
              echo"$pwreplace";



                                                 echo
              "test erfolgreicher";

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

              ?>
              so siehts jetzt aus... mitllerweile wird nur die zeile mit dem usernamen und dem pw angezeigt
              wie krieg ich es jetzt hin, ich den usernamen und das passwort in der textdatei speicher und das alte überschreibe??
              1123581321

              Kommentar


              • #22
                Original geschrieben von Enerkin
                wie krieg ich es jetzt hin, ich den usernamen und das passwort in der textdatei speicher und das alte überschreibe??
                mir ist irgendwie nicht klar, warum du die richtung jetzt wieder gewechselt hast ...

                mit file() hattest du doch bereits alles schön in einem array, hättest also für dein vorhaben nur noch das betroffene array-element gegen den neuen inhalt austauschen müssen, und anschließend das komplette array wieder zurück in die datei schreiben.

                möchtest du es unbedingt komplizierter haben, oder warum jetzt wieder das rumgeeiere mit fopen/fgets?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #23
                  zitat von asp2php:
                  warum nimmst du das Teil aus dem If-Block raus? wasfür Überlegungen steckt dahinter?
                  also hab ich es wieder wie vorher gemacht...
                  1123581321

                  Kommentar


                  • #24
                    Original geschrieben von Enerkin
                    also hab ich es wieder wie vorher gemacht...
                    und in wie weit sollte diese aussage auf die anwendung von file() bezogen sein ...?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #25
                      möchtest du es unbedingt komplizierter haben, oder warum jetzt wieder das rumgeeiere mit fopen/fgets?
                      das war doch vorher auch...
                      1123581321

                      Kommentar


                      • #26
                        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);
                                            
                        $b="1";

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

                                                   if (
                        $userdata[0]==$username)
                                                      {
                                                       if (
                        $oldpw_2==trim($userdata[1]))
                                                       {
                                                       if (
                        $newpw_1==$newpw_2)
                                                          {

                                                           
                        $array_userdatei file('user.txt');
                                                           
                        $usnpw $array_userdatei[$row];
                                                           
                        $pwreplace "$username|$newpw_1_2\n";
                                                           
                        $userdatei2 fopen("user.txt""w+");

                                                           for(
                        $a 0$a $row$a++)
                                                           {
                                                           
                        fwrite ($userdatei2"$array_userdatei[$a]");
                                                           }
                                                           
                        $a++;
                                                           
                        fwrite($userdatei2$pwreplace);
                                                           for(
                        $a$a $row$a++)
                                                           {
                                                           
                        fwrite ($userdatei2"$array_userdatei[$a]");
                                                           }
                                                           
                        $fclose($userdatei2);

                                                           echo
                        "passwörter erfolgreich gaendernt.";

                                                          }
                                                       else
                                                           {
                                                            
                        $b "2";
                                                           }
                                                       }
                                                      }
                                                   
                        $row++;
                                                   }

                                                  if (
                        $b == "2")
                                                     {
                                                      echo
                        "passwörter nicht identisch";
                                                     }
                                                  if (
                        $b == "1")
                                                     {
                                                      echo
                        "falsches passwort";
                                                     }

                        fclose($userdatei);

                        ?>
                        habs geschafft, dass das passwort geaendert wird und alles so funktioniert wie es sollte bis auf dass wenn das passwort richtig ist und die neuen passwoerter identisch sind er die seite nich richtig fertig laedt,
                        jetzt beim posten faellt mir grad ein, könnte dass daran liegen, dass die eine schleife bis ins unendliche geht??

                        edit:
                        habs jettz geschafft.
                        specieal thx an asp2php. danke dass du so geduldig warst
                        Zuletzt geändert von Enerkin; 17.11.2004, 18:51.
                        1123581321

                        Kommentar


                        • #27
                          nun, da wo du jetzt geschafft hast, Gratulation übrigens, kannst du das mal anschauen:
                          PHP-Code:
                          $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);
                          $b="1";
                          $blChanged false;
                          $userdatei file("user.txt"); // datei in array einlesen
                          for ($row=0$row<count($userdatei); $row++) { // schleife über alle Zeilen
                              
                          $userdata explode("|"$userdatei[$row]); // zeile in array
                              
                          if ($userdata[0]==$username) {
                                  if (
                          $oldpw_2==trim($userdata[1])) {
                                      if (
                          $newpw_1==$newpw_2) {
                                          
                          // neues pw zuweisen
                                          
                          $userdata[1] = $newpw_1_2
                                          
                          // zeile mit neuer info zuweisen
                                          
                          $userdatei[$row] = implode('|',$userdata); 
                                          
                          // flag setzen
                                          
                          $blChanged true;
                                          echo
                          "passwörter erfolgreich gaendernt.";
                                      }
                                      else {
                                          
                          $b "2";
                                      }
                                  }
                              }
                              if (
                          $blChanged) break; // abbruch der schleife
                          }
                          if (
                          $blChanged) { // daten geändert, zurück schreiben
                              
                          $file fopen('user.txt''w'); // datei zum schreiben öffnen
                              
                          for ($i=0$i<count($userdatei);$i++) 
                                  
                          fputs($file$userdatei[$i]);
                              
                          fclose($file);
                          } else {
                              switch(
                          $b){
                                  case 
                          1
                                      echo
                          "falsches passwort";
                                      break;
                                  case 
                          2
                                      echo
                          "passwörter nicht identisch";
                              } 
                          // switch

                          man kann natürlich noch mehr optimieren, bin i.M. etwas faul, und habe nur die wesentlichen Teile geändert ; aber im Prinzip siehst du wie es kürzer und einfacher geht.

                          Kommentar

                          Lädt...
                          X