Hello,
Das hab ich jetzt nicht verstanden. Nur soviel, dass ich immer das Satzende überschreibe und dann werden aus 2 Sätzen einer.
kannst du mir bitte sagen wie ich meinen Fehler jetzt behebe?
p.s. Du bist einfach zu schlau für mich *haha*
Wie meinst Du denn das nun wieder?
Ich habe ja scheinbar nicht begriffen, wo ich Dich abholen kann.
Also muss ich noch viel lernen - oder Du das nächste Mal mehr Informationen geben?
Zurück zum Thema:
Du öffnest Deine Datei zum Lesen und Schreiben
$datei = fopen("gaestebuch.txt", "r+");
Der Dateizeiger steht danach automatisch am Anfan der Datei.
Die Datei enthält aber schon Daten. Also kann der Dateizeiger eigentlich bis zum Ende vorrücken.
Du veranlasst aber das Vorrücken nicht, sondern lässt ihn dort stehen, wo der Datenbereich beginnt.
fwrite($datei, "\n".$eintrag);
nun schreibst Du strlen($eintrag) + 1 für das "\n" neue Daten dorthin, wo die alten bereits gespeichert sind, überschreibst also die alten Daten.
Da Du mit einem "\n" anfängst, das ja auf Linux-Systemen ein Satzende markiert in Textdateien, suggeriertst Du Deinem System,
- dass der erste Datensatz leer ist
- dass der zweite Datensatz mit dem Inhalt von $eintrag gefüllt ist
Was mit dem dritten und nachfolgenden Datensätzen passiert, hängt von der Länge von $eintrag ab.
Nur mal so zu meiner Weiterbildung:
Hast Du Dir denn einen Bindfaden geholt vorhin und diesen bunt angemalt?
Das kannst Su sicherlich auch auf Papier simulieren.
Nur, hast Du irgend etwas in dieser Richtung unternommen, um meinem Modell zu folgen?
Wenn nicht, dann solltest Du das nun schnellstens nachholen. Zumindest in Gedanken.
Ein harzliches Glückauf
Tom vom Berg