Moin!
ich hatte das Problem auch mal so ähnlich, dass war bei einem kleinen CMS und da werden alle Einträge mit_ohne_entities in die mySQL-DB geschrieben.
auf dem Weg von der Datenbank zurück in die Textarea passiert dann Folgendes:
[1]
// hier textarea tags maskieren
$feldwert=eregi_replace("</textarea>","</textarea>",$feldwert);
[2]
// hier ampersand maskieren
$feldwert=ereg_replace("&","&",$feldwert);
Ich hoffe ich habe nichts übersehen, aber [2] scheint wirklich ausreichend zu sein.
[1] ist nur nötig wenn man auch html-Textarea-Tags speichern möchte, da es einem sonst das Formular "zerschiesst"
Ich möchte widersprechen: Die Textarea verhält sich am besten, wenn man _alle_ HTML-aktiven Zeichen in Entities umsetzt:
< wird <
wird >
& wird &
" wird "
In PHP ist sowas schnell mit htmlspecialchars("string") erledigt, in Perl muß man etwas ausführlicher programmieren. :)
Wenn die Textarea angezeigt wird, sieht man die gewünschten Zeichen wieder, und genau so werden sie auch abgeschickt und kommen beim Server an. Textareas müssen also nur beim Befüllen gewandelt werden, sie wandeln automatisch zurück.
- Sven Rautenberg