Textarea in DB speichern und später wieder bearbeiten

supachecka

Mitglied
Hallo,

habe ein Frage zu Zeilenumbrüchen in textareas, und bevor jemand sagt ich soll die Suchenfunktion benutzten, bitte lest doch weiter und glaubt mir, dass ich nichts gefunden hab, was meinem Problem entspricht.

Es geht darum, dass ich ganz einfach einen Text mit Zeilenumbrüchen usw in einem CMS speichern will. Dabei nutze ich mysql_real_escape_string() um die Eingabe abzusichern. Wenn ich die sachen nun auf der Website ausgebe mit nl2br() ist alles bestens. Allerdings brauche ich noch eine Editierfunktion, und da ist das Problem! Wenn ich den escapten Text in mein textarea lade, dann habe ich überall wo ein Zeilenumbruch was "\r\n", und zusätzlich wird beim erneuten speichern wieder alles escapet, was immer mehr Backslashes verursacht.

Also meine Frage, wie kann ich das am besten beheben, eine Funktion, die mysql_real_escape_string rückgängig macht gibt es wohl nicht oder? Ohne escapen geht alles wunderbar, nur wäre das wohl ein erhebliches Sicherheitsproblem, weil manche der Felder auch für einfache User zugänglich sind.
 
Speichern:
PHP:
$query = ' … foobar="'.mysql_real_escape_string($var).'" …';
Ausgabe zum Bearbeiten:
PHP:
echo '<textarea …>'.htmlspecialchars($row['foobar']).'</textarea>';
Normale Ausgabe:
PHP:
echo nl2br(htmlspecialchars($row['foobar']));
 
Zurück