Anscheinend werden sie nicht korrekt von der Seite an mein Script übertragen, das alles in einer Textdatei speichert. Dabei belegt ein Eintrag eine Zeile, die Einzelnen Felder wie Name, Zeit, E-Mail etc. werden durch §-Zeichen getrennt. Aber in der Datei sind die Umbrüche schon nicht mehr vorhanden.
Das Script sieht so aus:
<?php
if ((isset($Name) && isset($Name)) && (chop($Mail) != "" && chop($Mail) != "") && (chop($Text) != "" && chop($Text) != ""))
{
$dateiname = "gaestebuch.txt";
$daten = file($dateiname);
#Text mit Zeilenumbrüchen formatieren
$Text = nl2br($Text);
$Text = str_replace("\n", "", $Text);
#feststellen, ob ein Wort länger als 50 Zeichen ist
$Text = explode(" ", $Text);
for($x=0; $x < count($Text); $x++)
{
if (strlen($Text[$x]) > 50)
{
echo "<center>Bitte versuchen sie nicht, das Gästebuch zu manipulieren!<br></center>";
echo "<center><a href='../../View.php?content=gaestebuch/gaestebuch.php'>Zurück</a></center>";
exit();
}
}
$Text = implode (" ", $Text);
#§ durch html-character ersetzen
$Text = ereg_replace("§","§",$Text);
$Mail = ereg_replace("§","§",$Mail);
$Name = ereg_replace("§","§",$Name);
$timestamp = time(); //Zeit setzen
$datum = date("d.m.Y", $timestamp);
$zeit = date("H:i", $timestamp);
#String zusammensetzen und an erste Stelle von Daten bringen
$resultat[0] = $Name . "§" . $Mail . "§" . $datum . "§" . $zeit . "§" . $Text . "\n"; //Korrekt
for($x=0; $x < count($daten); $x++)
{
$resultat[$x +1] = $daten[$x];
}
#In Datei schreiben
$resultat = implode("", $resultat);
$filehandle = fopen($dateiname, "w");
fwrite($filehandle, $resultat);
echo "<center>Eintragung erfolgreich!<br></center>";
echo "<center><a href='../../View.php?content=gaestebuch/gaestebuch.php'>Zurück</a></center>";
}
else
{
echo "<center>Du hast ein Feld vergessen!<br></center>";
echo "<center><a href='../../View.php?content=gaestebuch/gaestebuch.php'>Zurück</a></center>";
}
?>
Wenn nun jemand aber jemand
Zeilen
umbruch
eingibt,
kommt Zeilenumbruch raus.