• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Probleme mit Guestbook

Status
Für weitere Antworten geschlossen.

Max

Neues Mitglied
Hallo,
habe mir per PHP ein Guestbook gemacht bei dem die Einträge in einer Textdatei gespeichert werden, hab aber da 2 Probleme:

1. Beim Abspeichern des neuen Eintrags wird dieser nach den vorherigen abgespeichert. So werden beim ausgeben die neuen Beiträge immer am Schluss ausgegeben. Ich will aber das die neuen am Anfang stehen.
Gibts da einen Befehl damit beim Speichern der Dateizeiger am anfang der Textdatei steht???

2.Verwendet man bei einem Eintrag einen Zeilenumbruch, so wird dieser auch im Textdokument gespeichert. Bei der Ausgabe wird allerdings dann nur die erste Zeile ausgegeben. Was kann ich machen???

Vielen Dank im Voraus.
 
Werbung:
2)
$beitrag = nl2br($beitrag);

1)
mit einer DB wäre das leicht, in deinem fall würd ich mal nach der funktion sort() suchen. vielleicht geht damit was...
 
Danke für die schnelle Antwort, aber bei problem 2 fügt er bei der Textdatei ein
, macht aber trotzdem wieder einen Zeilenumbruch. :(
 
Werbung:
philipp das wuerde sein problem nicht beheben

ich wuerde folgendes machen beim speichern:

[php:1:d2ce872e5a]
$beitrag = str_replace(array("\r", "\n"),array('','
'),$beitrag);
[/php:1:d2ce872e5a]
oder auch
[php:1:d2ce872e5a]
$beitrag = str_replace(array("\r", "\n"),array('
', ''),$beitrag);
[/php:1:d2ce872e5a]

tests mal beides.
 
ich würd sagen, wenn du das hernimmst, wird der zeiger an den anfang der datei gesetzt.
Dann werden deine Einträge in der richtigen reihenfolge gespeichert/ausgegeben.

Und wenn die niklasseine methode zu kompliziert oder zu lang ist(mir wär das zu blöd mit dem befehl :wink: ) dann lass es einfach so ausgeben

Code:
<pre>inhalt_des_gasebucheintrages</pre>
Damit wird der text so ausgeben, wie er formatiert wurde.
Tests einfch mal
 
Werbung:
Danke für die Hilfe,
das mit <pre></pre> funktioniert leider nicht. Und mit dem Befehl rewind() hab ich es nun geschafft den Dateizeiger an den Anfang zu setzen, aber dann überschreibt er einfach die anderen Beiträge.

@niklasboelter: ich kann php nicht sehr gut und kann damit irgendwie nichts anfangen.
 
Dann mach das so:
Du liest zuerst die alten Beiträge aus -> in eine Variable
Dann schreibst du den neuen Text in die Datei und die alten hintendran
Code:
$beide = "$neutext

$alttext";

$schreiben = fwrite($datei, $beide)
 
Danke, hab aber jetzt einfach beim ausgeben die Schleife "rückwärts" laufen lassen. So werden zuerst die hinteren Beiträge ausgegeben. Geht auch.
Aber das Problem mit dem Zeilenumbruch hab ich immer noch. :( :( :(
 
Werbung:
Kann mir jemand vielleicht sagen was das Html-zeichen für einen Zeilenumbruch ist?
Das muss ich ja dann einfach mit
ersetzen, oder?
 
Werbung:
Code:
niklas@gentoo ~ $ cat test.php
<?php
$beitrag = '    DAS
                GEHT
                UEBER           
                MEHRERE         
                ZEILEN          
';                              
$beitrag = str_replace(array("\r", "\n"),array('','
'),$beitrag); 
echo $beitrag;                  
?>                              
niklas@gentoo ~ $ php test.php  
        DAS
               GEHT
              UEBER
             MEHRERE
           ZEILEN
niklas@gentoo ~ $
konstatiere: funktinoert wunderbar
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben