Gästebuch ordnen

Kafkagirl

Grünschnabel
Hallo,
sobald in dem Textfeld Zeilenumbrüche getätigt werden, kommt alles durcheinander. Etwas Stimmt nicht mit der Anordnung. Bitte helft mir auf die Sprünge!

gaestbuch.php (Anzeigen der Einträge)
PHP:
<?php
$datenbank = "daten.dat"; 
$eintraege=file($datenbank);
$eintraege = array_reverse($eintraege);
for($i=0;$i<count($eintraege);$i++)
  echo "$eintraege[$i]<p />";
?>


gaestebuch-eintrag.html
HTML:
<form method="post" action="gaestebuchdanke.php">

<p>Dein Name:	</p>
	<p>
		<input name="name" type="text" size="20" maxlength="40">
		<br>
		
		eMail:</p>
	<p>
	<input name="email" type="text" size="30" maxlength="50"><br>
		
		Dein Eintrag:</p>
	<p>
	<textarea name="eintrag" cols="33" rows="4"></textarea>
		</p>
	<p><br>
		<input type="submit" name="Button" value="speichern">
	</p>
	</form>

gaestebuchdanke.php (Verarbeitung der Einträge)
PHP:
<?php
$date = date("d.m.Y");  
$daten="Eintrag von <a href=mailto:".$_POST[email].">".$_POST[name]."</a> am ".$date."<br>".$_POST[eintrag]."<br><br>\r\n"; 
$eintrag=nl2br($eintrag);  
$datenbank = "daten.dat"; 
$datei = fopen($datenbank,"a+");
$eintrag=strip_tags($eintrag);
fwrite($datei, $daten);
?>
 
Du hast in der Ausgabe ein <p> vergessen:
PHP:
<?php 
$datenbank = "daten.dat";  
$eintraege=file($datenbank); 
$eintraege = array_reverse($eintraege); 
for ($i=0; $i<count($eintraege); $i++)  {
  echo "<p>".$eintraege[$i]".<p />"; 
}
?>
So sollte es funktionieren!
 
Wenn ich das <p> einsetze, funktioniert nichts mehr und es kommt eine Fehlermeldung!
[Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /mnt/web1/21/95/51421595/htdocs/gaestebuch.php on line 27
Zeile 27: echo "<p>".$eintraege[$i]".<p />";
Die {} Klammern habe ich hinzugefügt, vielen Dank! Hast Du vielleicht noch eine Idee?

Ich werde Dir mein Problem anhand eines Beispiel deutlich machen:

Meine Gästebucheinträge sollten so angezeigt werden:

Eintrag von: Kafkagirl am 07.05.2009
I'm a new soul I came to this strange world
hoping I could learn a bit 'bout how to give and take.
but since I came here felt the joy and the fear
finding myself making every possible mistake

und so wird es momentan angezeigt:

finding myself making every possible mistake
but since I came here felt the joy and the fear
hoping I could learn a bit 'bout how to give and take.
Eintrag von: Kafkagirl am 07.05.2009
I'm a new soul I came to this strange world

Was sagst Du dazu?
 
Zuletzt bearbeitet:
PHP:
echo "<p>".$eintraege[$i]".<p />";

durch:

PHP:
echo "<p>".$eintraege[$i]."<p />";

ersetzten. Der punkt ist an der falschen Stelle, danach sollte die Meldung weg sein.
 
Statt <p /> sollte es vielleicht auch </p> heißen. Sonst könnte es sein, dass der Browser das nicht als Absatzende erkennt.
 
Hallo,
ich danke Euch für Eure Hilfe!

Ich habe den Script nun doch noch etwas verändert und erweitert. Zeilenumbrüche funktionieren nun auch wunderbar!
Nun wollte ich noch eine Email Benachrichtigung für jeden eingegangenen Gästebucheintrag. Das funktioniert auch, hat nur einen kleinen Fehler: Er zeigt mir den Namen des Verfassers nicht an (in der eingegangenen Email). Habt Ihr eine Idee?
Und noch etwas, im Posteingang steht die Mail ist von postmaster+XXXXXXX@post.webmailer.de. Kann man daraus postmaster+meineDomain@post.webmailer.de machen?
Ich hoffe, ich darf auch neue Fragen mit in dieses Thread schreiben, ansonsten bitte bescheid geben und ich werde einen neues Thema eröffnen.
LG Kafkagirl
Und nochmals vielen Dank

Gaestebuch-danke.php
PHP:
<?php 
$date = date("d.m.Y");   
$daten="Eintrag von <a href=mailto:".$_POST[email].">".$_POST[name]."</a> am ".$date."<br>".$_POST[eintrag]."<br><br>\n";  
$datenbank = "daten.dat"; 
$daten=nl2br($daten);
$datei1 = fopen($datenbank,"r");
$eintraege = fread($datei1, filesize($datenbank));
fclose($datei1);
$daten = $daten.$eintraege;
$datei = fopen($datenbank,"w+");
$eintrag=strip_tags($eintrag); 
fwrite($datei, $daten);
$datenbank = "daten.dat"; 
mail ("xxxxxxxxxxxxxxx@xxxxxx.de", "neuer Eintrag im Gästebuch", "$name hat sich im Gästebuch eingetragen."); 
?>
 
Zurück