Max: Zeilenumbrüche aus Textfeld ausgeben

Hi.

Ich habe ein Problem mit meinem Gästebuch.
Es basiert auf einer Textfile und ist folgendermaßen aufgebaut:

Man gibt den GB in ein Formular ein, die daten werden an die gb.php weitergeleitet und diese speichert den Text in die daten.dat ab.
Die guestbook.php wiederum liest aus der daten.dat und gibt den Text im Browser aus. Allerdings werden alle Leerzeichen die im Formular eingegeben worden sind ignoriert.

Jetzt habe ich gelesen dass ich, um das zu beheben, die nl2br () Funktion benutzen muss. Nur bekomme ich nicht raus wie ich diese richtig in meinen code einbetten muss.

Der code der gb.php ist folgender:

<?php

$daten=$_POST[eintrag]."<br>von <a href=mailto:".$_POST[email].">".$_POST[name]."</a><br><br>";

$datenbank = "daten.dat";

$datei = fopen($datenbank,"a");

fwrite($datei, $daten);

?>

Der Code der guestbook.php ist:

<?php

$datenbank = "daten.dat"; $datei = fopen($datenbank,"r");

fpassthru ($datei);

?>

Kann mir jemand sagen wo ich die oben genannte Funktion ein binden muss damit mir endlich Zeilenumbrüche ausgegeben werden?

Gruß,
Max

  1. Jetzt habe ich gelesen dass ich, um das zu beheben, die nl2br () Funktion benutzen muss. Nur bekomme ich nicht raus wie ich diese richtig in meinen code einbetten muss.

    Hallo,

    <?php echo nl2br(file_get_contents("daten.dat")); ?>

    Gruß

    1. Wow!
      Vielen Dank Andreas. Das hat super funktioniert!

      Kannst du mir vielleicht gleich nochmal helfen?

      Ich habe nämlich noch das Problem das die Gästebucheinträge alle auf einer Seite angezeigt werden. Das sprengt dann immer den Rahmen der Seite. Gibt es eine Möglichkeit dass z.B. nur 4 Einträge angezeigt werden und man dann die Möglichkeit hat auf eine weitere Seite zu kommen um dort ältere Einträge zu sehen?

      Gruß,
      Max

  2. Dein Gästebuch ist unsicher (XSS anfällig). Falls du es nicht nur zum Üben programmierst, würde ich dir raten, lieber ein bereits fertiges Gästebuch zu installieren. Ansonsten sieh dir mal die Funktion htmlspecialchars() an und frag deine Arrays mit $Array_['Index'] ab (beachte die '').

    1. »»Ansonsten sieh dir mal die Funktion htmlspecialchars() an

      Danke für den Hinweis.
      Wie binde ich diese Funktion korrekt ein?

      Habt Nachsicht ich bin noch ein newbie.

      1. Moin!

        Ansonsten sieh dir mal die Funktion htmlspecialchars() an

        Wie binde ich diese Funktion korrekt ein?

        Was meinst du mit „einbinden“? Vielleicht hilft dir die PHP-Manual über htmlspecialchars weiter.

        Habt Nachsicht ich bin noch ein newbie.

        Dann solltest du dir auf jeden Fall die PHP-Manual zu Gemüte führen und besonders dem Kapitel Sicherheit viel Aufmerksamkeit schenken.

        Viele Grüße,
        Robert