Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Guestbook - Absätze erkennen?



Armitage2k
19.03.2006, 12:19
also langsam werd ich in dem forum stammgast :D

mein heutiges problem ist eigentlich recht simpel. ich möchte, dass wenn jemand in mein guestbook sich einträgt, und er dabei die "enter"-taste drückte um einen zeilenumbruch zu machen, dieser von meinem GB erkannt wird und als "<br>" tag in meiner textdatei gespeichert wird.

zur erklärung:
die person die sich verewigen möchte gibt auf meiner site in mehrere textfelder ein paar sachen an (email, HP, name, etc..), auch den kommentar den er hinterlassen möchte. wenn jemand jetzt also in dieses textfeld folgendes eingibt:

"hallo!
Tolle site,
gefällt mir gut.

LG, xxx"

dann wird letztlich auf meiner site so angezeigt:

"hallo!Tolle site,gefällt mir gut.LG,xxx"

ergo: es werden die zeilenwechsel nicht erkannt. wie kann das meinem script klarmachen dass es sich bei einem zeilenwechsel um einen "<br>" tag handelt?

thanks,
[JLA]

drunken monkey
19.03.2006, 12:25
Die wohl einfachste Methode wäre, den Teil, in den die Datei eingefügt wird mit CSS als "whitespace: pre;" auszuzeichnen, dann werden Zeilenumbrüche automatisch übernommen.

Erklärung (http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#white_space)

Manni
19.03.2006, 12:29
Oder benutz in PHP nl2br($dein_text), bevor du den ausgibst. Das ersetzt alle Zeilenumbrüche durch <br /> ;)

Armitage2k
19.03.2006, 13:23
also die css variante fällt schon mal flach, mehr aus dem grund dass ich keine ahnung von css hab, als dass es nicht unterstützt wird ;)

zu der 2ten variante. wo genau soll ich den befehl einfügen? an der stelle wo es eingelesen wird, oder wo es ausgegeben wird? zur info, hier ist mein script:



<?php
$name = $_POST['input_name'];
$email = $_POST['input_email'];
$homepage = $_POST['input_website'];
$kommentar = $_POST['input_comment'];

//Abfrage, ob Textarea Name leer ist und Ausgabe einer Warnung
if (empty ($name)) {
die ("<b><font face=\"Arial, Verdena, sans-serif\" size=\"2\" color=black>Bitte geben Sie Ihren Namen ein.<br><br><a href=\"javascript:history.go(-1);\">&laquo;&laquo; zurück</A>");}

//Abfrage, ob Textarea Komentar leer ist und Ausgabe einer Warnung
if (empty ($kommentar)) {
die ("<b><font face=\"Arial, Verdena, sans-serif\" size=\"2\" color=black>Bitte geben Sie einen Kommentar ein.<br><br><a href=\"javascript:history.go(-1);\">&laquo;&laquo; zurück</A>");}

$txt = "nachrichten.txt";

if($homepage != "http://")
{$homepage1 = "<a href=\"$homepage\" target=\"_blank\">[Homepage]</a>";}

if($email != "")
{$email1 = "<a href=\"mailto:$email\">[E-Mail]</a>";}

$lesen = fopen("$txt", "r");
$inhalt = fread($lesen, filesize($txt));
fclose ($lesen);


//Schreiben in die TXT-Datei
$schreiben = fopen("$txt", "w");
if($schreiben){
flock($schreiben,2);
fputs ($schreiben, "
<b>Geschrieben von $name</b>
<b>$homepage1</b>
<b>$email1</b><hr />
$kommentar<hr />
<br><br>
$inhalt");
flock($schreiben,3);
fclose ($schreiben);}
echo "<script>self.location=\"guestbook.php\";</script>";
?>

Rolus
19.03.2006, 13:37
Ist eigentlich unwichtig, ob du die Funktion beim Schreiben oder beim Auslesen anwendest. Ich würde es beim Auslesen machen, aber du hast ja nur das Skript zum Schreiben gepostet. Man könnte es zum Beispiel am Anfang einbauen:

$kommentar = nl2br($_POST['input_comment']);

freundliche Grüße, Rolus

Armitage2k
19.03.2006, 13:41
ein hoch auf den RPG-Kingdom. mal wieder alles in ordnung :D

thanks@all