Fertighaus: Datensätze hinzufügen - die schon bestehenden aber auch

Hallo. Ich habe folgendes Problem:

In einer Datei steht z.B.:

<?php

$katze = "Hund";
$banane = "Hallo";
$ichbins = "Was geht";

?>

Nun kann der User in einem Formular eine weitere Variable hinzufügen. Wenn ich das so aber mittels fwrite() in die Datei schreibe, wird alles komplett überschreiebnund die alten Variablen sind dann verschwunden. Er kann auch nahceinander mehrere Variablen eingeben, sodass ich nicht zub Beispiel ins fwrite schreiben kann:

fwrite($fileopenvariable, "

<?php

$katze = "$katze";
$banane = "$banane";
$ichbins = "$ichbins";
$neuevariable = "$diegeradeeingegebenevariable
?>

");

Denn sonst funktionierts einmal und beim nächsten mal steh ich vor dem gleichen Problem.

Wie kann ich es nun also machen, dass jedes mal alle schon vorhandenen Variablen stehen bleiben und die neuen nur hinzugefügt werden?

Danke für jede Hilfe...

  1. Hello,

    ... da scheu Dir mal das Beipiel an:
    http://bitworks.de/~selfHTML/speichern.php

    Das kann man natürlich auch auf mehrere Datensätze ausdehnen, in dem man dem Datenarray ainfach weitere Sätze hinzufügt.

    Und es gibt noch viele weitere Möglichkeiten...

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Ich hab das jetzt mal so probiert:

      <?php
      $filename = "test.txt";

      $file = file($filename);
        $fh = fopen($file,"r");
        $fp = fopen($filename, "w");
        fwrite($fp, "$fh
      $neu");
      ?>

      Die Seite heisst save.php
      Wenn ich jetzt aufrufe save.php?neu=Neuertext kommt folgende Fehlermeldung:

      Warning: fopen() expects parameter 1 to be string, array given in /home/www/web3/html/fertighaus/save.php on line 5

      (Nicht lachen, ich bin kein sonderliches Gnie, bin Anfänger, das ist ja nur ne Idee von mir...)

      Was ist daran denn so falsch? Das Script soll die schon vorhandenen Daten in der test.txt wieder mit reinschreiben und zusätzlich die neuen Daten ($neu)

      Wo liegt/liegen  mein(e) Denkfehler ???

      1. Hello,

        <?php
        $filename = "test.txt";

        mit dem folgenden Kommando wird die gesamte Datei bereits in ein

        Array eigelesen. Bei jedem Zeilenumbruchzeichen wird eine Array-Zelle

        beendet und die nächste begonnen.

        $file = file($filename);

        $fh = fopen($filename,"r+");     ## Datei zum Lesen und Schreiben öffnen
           fseek($fh, filesize($filename)); ## an das Ende der Datei gehen.
           fwrite($fh, $neu);               ## neuen Inhalt hinzufügen
           fclose($fh);                     ## Datei wieder schließen

        ?>

        Alternativ:

        $fh = fopen($file,"a");          ## Datei zum Anfügen öffnen
           fwrite($fh, $neu);               ## neuen Inhalt hinzufügen
           fclose($fh);                     ## Datei wieder schließen

        $neu muss für jede Zeile auch das Zeilenendezeichen enthalten!

        Man kann mehrere Zeilen auf einmal schreiben:

        $neu = implode("\n",$_zeilen)."\n";

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen