Zeilenumbruch in Textarea

GottiRhg

Mitglied
Servus,

ich habe folgendes Problem:

Ich habe eine Textarea, welche etwas in eine Datenbank schreibt. Damit da nicht gefuscht werden kann, fange ich die Textarea vor dem Schreiben in die Datenbank ab:
Code:
htmlentities(mysql_real_escape_string($_REQUEST['beschreibung']))

Die Ausgabe aus der Datenbank behandel ich so:
Code:
htmlentities(html_entity_decode($row_anzeige['beschreibung']))

Nun mein Problem:
Wenn jemand in der Textarea einen Umbruch einfügt, sollte dieser anschließend auch bei der Ausgabe als Umbruch dargestellt werden.
Wie löse ich dieses Problem am schlausten?
 
Für die Datenbankabfrage:
PHP:
mysql_real_escape_string($_REQUEST['beschreibung'])
Für die Ausgabe:
PHP:
htmlspecialchars($row_anzeige['beschreibung'])
Mehr brauchst du nicht.
 
Ach jetzt verstehe ich was du meinst. Ich dachte du gibst es wieder in einem textarea-Element aus.

Um zu den Zeilenumbruchzeichen HTML-Zeilenumbrüche hinzuzufügen, nimm die nl2br()-Funktion.
 
edit: // mist Gumbo war schneller :)


moin die Ausgabe funktioniert so:
nl2br(htmlspecialchars($row_anzeige['beschreibung']))

nl2br: http://php.net/nl2br

solltest du HTML statt xHTML verwenden, musst die ambesten die Funktion nachbauen ;)

 
Falls gewünscht:
PHP:
function html_nl2br( $str, $xhtmlSyntax=false )
{
	return preg_replace('/\x0D\x0A|\x0A|\x0D/s', '<br'.($xhtmlSyntax?' /':'').'>$0', $str);
}
 
nochmal bitte zusammenfassend. bin gerade etwas verwirrt.

wie mache ich die eingabe sicher, damit einträge wie <table> oder </div> auch später als text </div> ausgegeben werden und auch sachen wie "select * from tabelle" ignoriert werden und trotzdem zeilenumbrüche dargestellt werden?!
 
sry habe es hinbekommen

falls nochmal wer das problem hat:

eingabe:
Code:
$beschreibung = nl2br(htmlentities(mysql_real_escape_string($_REQUEST['beschreibung'])));

ausgabe:
Code:
$beschreibung = nl2br(htmlspecialchars($row_anzeige['beschreibung']));
 

Neue Beiträge

Zurück