textarea-Inhalte in DB eintragen

poolpage

Erfahrenes Mitglied
Hallo zusammen,

ich bastle hier derzeit an mehreren Skripten, bin aber schon mehrfach auf dieses Problem gestossen.

Ich habe ein Formular mit einem <textarea>-Feld. Der textarea-Inhalt wird dann an ein PHP-Skript gesendet, das mit dem Inhalt folgendes macht:

PHP:
$text = stripslashes($text);
$text = htmlspecialchars($text);
$text = nl2br($text);

Der Text wird dann auf der folgenden Seite - der Vorschau-Seite richtig dargestellt und die Zeilenumbrüche werden mit <br> dargestellt.

Die Informationen aus der Textarea werden in einem hidden-Formularfeld gespeichert, und dann nach drücken des "bestätigungs"-Buttons, in die Datenbank eingetragen.

Leider wird aber in der Datenbank für die Zeilenumbrüche nicht

<br> eingetragen, sondern <br />. Wie kann ich das umgehen?

Gruss,
poolpage
 
<br /> sollte eigentlich keine Probleme machen. Die mir bekannten Browser interpretieren es richtig als Zeilenumbruch. Solltest du aber darauf bestehen, dass "\n" in "<br>" ersetzt wird, kannst du das mit dem str_replace()-Befehl machen:
PHP:
$text = str_replace("\n", "<br>", $text);
 
Ja, die Browser haben in der Tat kein Problem damit, aber wenn ich den Inhalt aus der DB wieder in eine Textarea lade, z.B. um ihn zu bearbeiten, interpretier die DB das <br /> als Text und nicht als Zeilenumbruch...

Also str_replace? Aber *wo*? Vor dem DB-Eintrag?

Gruss,
poolpage
 
Ja, vor dem DB-Eintrag. Statt der Zeile mit dem nl2br(). Aber wenn du´s in ein Textarea-Feld einträgst, musst du es sowieso wieder in \n umwandeln! Also kannst du eigentlich auch diese ganzen htmlspecialchar() usw. Funktionen erst vor der Ausgabe in eine Seite (also nicht in einer Textarea) machen, und den Text unverändert in die DB speichern.
 

Neue Beiträge

Zurück