txt arrays ersetzen und nicht überschreiben

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

  • txt arrays ersetzen und nicht überschreiben

    Dieses Script sollte ursprünglich ein Array und zwar $arr[0] mit $new_username ersetzen. Die Datei wird aber komplett neu geschrieben.
    Kann mir jemand helfen?

    ICH HABE SCHON IM MANUAL GEGUCKT, aber ich verstehe es nicht!

    PHP-Code:
    //Gucken ob neuer Name mit neuem Namen übereinstimmt
    if($_POST['new_username'] == "$new_username"){
    //Datei öffnen und hineinschreiben
    $file fopen("user.txt","a+");
    //299 Zeilen auslesen aus Datei
    while($line=fgets($file,300)) {
    //während ausgelesen wird, sollen Trennzeichen erfasst werden
      
    $arr explode("|",$line);
    //Gucken ob Name in .txt bereits exestiert
      
    if($_POST['new_username']=="$arr[0]") {
    //Wenn das der Fall ist poste:
         
    echo "<center>Achtung! Username exestiert bereits.</center>";
    //if Schleife verlassen
      
    exit;
    //Array in der Datei die geöffnet ist ersetzen
      
    $file ereg_replace('arr[0]'$new_username$file);

                                            }
                                    }
    //in Datei schreiben
      
    fwrite($file"$new_username|$password|$firstname|$surname|$email");
    //Datei schließen
    fclose($file);

    Zuletzt geändert von alexs; 23.04.2004, 15:57.

  • #2
    Re: txt arrays ersetzen und nicht überschreiben

    Original geschrieben von alexs
    Die Datei wird aber komplett neu geschrieben.
    und warum wundert dich das?

    zitat manual zum parameter "w+":

    Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte.

    ICH HABE SCHON IM MANUAL GEGUCKT, aber ich verstehe es nicht!
    was verstehst du da nicht?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      W funktioniert aber genauso wenig, sorry, ich bin halt nicht so schlau wie du

      Kommentar


      • #4
        Original geschrieben von alexs
        W funktioniert aber genauso wenig
        wie soll es denn auch?

        versuch doch bitte mal, uns (und auch dir selber) zu erklären, was deijn script schritt für schritt machen soll - dann sollte dir unterwegs auch auffallen, warum das so nicht funktioniert.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Jetzt bin ich immer noch nicht schlauer...
          Kann mir bitte jemand etwas helfen?
          Zuletzt geändert von alexs; 23.04.2004, 16:06.

          Kommentar


          • #6
            hey, du fauler sack!
            hörst du jetzt bitte mal mit der bettelei nach einer fertig vorgekauten lösung auf?

            wir helfen dir hier gerne, mit dir zusammen dein script zum laufen zu bringen - aber wir machen nicht alle arbeit für dich, und du schaust zu.


            also, entweder kommst du jetzt mal meiner aufforderung nach, und erklärst, welche befehle in deinem script was machen sollen ... oder wir lassen es.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Was geht denn jetzt???
              Ich habe es doch vor fünf Minuten geändert, so dass die Erläuterungen dabei stehen.

              Ähm, und fauler Sack verbitte ich mir. Ich beleidige ja auch keine Musiker, die schlechter sind als ich.
              Man sollte sich etwas unter Kontrolle haben!

              Dürfen Moderatoren überhaupt User beleidigen?
              Zuletzt geändert von alexs; 23.04.2004, 16:13.

              Kommentar


              • #8
                Original geschrieben von alexs
                Ich habe es doch vor fünf Minuten geändert, so dass die Erläuterungen dabei stehen.
                ja sag das doch :-)

                sorry, aber ohne jeden hinweis deinerseits habe ich deinem code oben nicht erneut beachtung geschenkt.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Re: txt arrays ersetzen und nicht überschreiben

                  //Datei öffnen und hineinschreiben
                  $file = fopen("user.txt","a+");

                  jetzt wird die datei so geöffnet, dass man lesen und schreiben kann - allerdings wird der dateizeiger auf das ende der datei gesetzt, also dürfte es nix zu lesen geben.


                  //in Datei schreiben
                  fwrite($file, "$new_username|$password|$firstname|$surname|$email");

                  wo kommen die anderen werte neben dem usernamen her?
                  die du aus der datei ausgelesen hast, stehen jetzt in $arr!
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    die habe ich vorher definiert arr[0] = "$new_username" etc.

                    Aber ich komme trotzdem nich weiter, habe es auch schon mit a+ SChreibmodus ausprobiert.
                    Zuletzt geändert von alexs; 23.04.2004, 16:23.

                    Kommentar


                    • #11
                      Original geschrieben von alexs
                      die habe ich vorher definiert arr[0] = "$username" etc.
                      nein, das ist die andere richtung.

                      wenn du $username in die datei schreiben willst, dann sollte die zuweisung doch wohl eher $username = $arr[0] lauten.

                      und jetzt mal schritt für schritt:

                      öffne die datei zunächst mal nur zum lesen ("r").
                      lies deine daten ins array ein, schliesse die datei wieder.

                      kontrollausgabe:
                      echo '<pre>';
                      print_r($arr);
                      echo '</pre>';

                      ergibt?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Re: Re: txt arrays ersetzen und nicht überschreiben

                        Original geschrieben von wahsaga
                        //in Datei schreiben
                        fwrite($file, "$new_username|$password|$firstname|$surname|$email");

                        wo kommen die anderen werte neben dem usernamen her?
                        die du aus der datei ausgelesen hast, stehen jetzt in $arr!
                        Ich möchte, dass $arr[0] mit $new_username überschrieben wird, aber
                        ich kann es mir nicht herleiten...
                        Zuletzt geändert von alexs; 23.04.2004, 16:42.

                        Kommentar


                        • #13
                          Kontrollausgabe:


                          [0] => alex
                          [1] => 7363a0d0604902af7b70b271a0b96480
                          [2] => wer
                          [3] => sdfsd
                          [4] => dfsfdfs



                          alex ($arr[0]) soll mit $new_username überschrieben werden...
                          Zuletzt geändert von alexs; 23.04.2004, 16:44.

                          Kommentar


                          • #14
                            Re: Re: Re: txt arrays ersetzen und nicht überschreiben

                            Original geschrieben von alexs

                            [0] => alex
                            [1] => 7363a0d0604902af7b70b271a0b96480
                            [2] => wer
                            [3] => sdfsd
                            [4] => dfsfdfs

                            Ich möchte, dass $arr[0] mit $new_username überschrieben wird, aber
                            ich kann es mir nicht herleiten...
                            $arr[0] = $new_username;

                            jetzt steht in deinem array an erster stelle schon mal der wert aus $new_username.

                            so, und jetzt soll das ganze in die datei zurückgeschrieben werden ...

                            also öffne sie mit dem parameter "w" (einfach nur die bestehende datei überschreiben).

                            aus dem inhalt hast du mit explode("|", ...) ein array gemacht, also bietet sich jetzt der umgekehrte weg an:

                            $neuer_inhalt = implode("|", $arr);

                            und den wert dieser variablen $neuer_inhalt schreibst du jetzt in die datei, und schliesst sie anschliessend wieder ...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Sähe das dann so aus?

                              PHP-Code:
                              if($_POST['new_username'] == "$new_username"){
                              $file fopen("user.txt","w");
                              while(
                              $line=fgets($file,300)) {
                              $arr[0] = $new_username;
                                
                              $new_file implode("|",$arr);
                                                            }
                              fclose($file);

                              $writing_ok "Daten wurden erfolgreich aktualisiert!";

                              Kommentar

                              Lädt...
                              X