Moin!
Welche Reihenfolge von welchen Funktionen auf den jeweiligen POST-String angewandt empfehlt Ihr?
Die Sache ist eigentlich sehr simpel. Den Kreislauf beginne ich nach dem Absenden einer gefüllten Textarea:
Der Inhalt einer Textarea kommt dir in $_POST['text'] entgegen.
Du mußt prüfen, ob magic_quotes_gpc aktiviert sind. Ist das der Fall, mußt du stripslashes() auf $_POST['text'] anwenden:
if (get_magic_quotes_gpc()) { $_POST['text']=stripslashes($_POST['text']); }
Dann muß der Text in die Datenbank. Dazu ist zwingend mysql_real_escape_string() oder mysqli_escape_string() (je nachdem, welche MySQL-Bibliothek verfügbar ist) zu verwenden:
$sql = "INSERT INTO tabelle ('textareafeld') VALUES ('".mysql_real_escape_string($_POST['text'])."')";
mysql_query($sql);
Damit endet der erste Teil, die Daten sind gesichert.
Auslesen aus der Datenbank geht wie bekannt:
$sql = "SELECT textareafeld FROM tabelle LIMIT 1";
mysql_query($sql);
$daten = mysql_fetch_assoc(...);
Damit steckt dein Text in $daten['textareafeld'].
Die Ausgabe in eine Textarea in HTML erfordert htmlspecialchars() zur Maskierung der HTML-eigenen Zeichen <, > und &, die eventuell im Text enthalten sein könnten:
echo "<textarea name='text' cols='20' rows='20'>";
echo htmlspecialchars($daten['textareafeld']);
echo "</textarea>";
Und schon steht der Text wieder genauso in der Textarea, wie er vorher eingegeben wurde - inklusive aller Zeilenumbrüche.
Wenn du diese Textarea jetzt wieder an das Speicherskript schickst, schließt sich der Kreislauf (wobei Speicherung auch als UPDATE laufen kann, um den alten Zustand zu überschreiben).
Ein Wort zur Zeichencodierung: Wenn du überall, also auf allen HTML-Seiten und in der Datenbank, UTF-8 als Codierung benutzt, ist der dargestellte Kreislauf wirklich universell für alle eingebbaren Zeichen der Welt. Wenn du hingegen eine vom Zeichenumfang eingeschränktere Codierung wie ISO-8859-1 benutzt (hat kein Eurozeichen!), werden dir alle Zeichen verloren gehen, die mit dieser Codierung nicht dargestellt werden können - und du kannst dagegen nicht das geringste tun! UTF-8 ist daher extrem empfehlenswert.
- Sven Rautenberg
"Love your nation - respect the others."