Hi Michael,
Also: Ein Textfeld in einem Formular -> übermittelter Wert wird in PHP per $_POST['meinTextfeld'] abgefragt -> abgefragter Wert wird in eine Datenbank gespeichert -> zu späterem Zeitpunkt wird der Datenbankeintrag wieder gelesen, in eine HTML-Seite eingefügt und gelangt so an den Browser. Was muss ich nun tun, damit die 'normal' eingegebenen Umlauten und Sonderzeichen aus dem Formularfeld auch wieder HTML-konform im Browser landen?
Nichts. Zumindest soweit es die Umlaute betrifft. Warum willst du sie in irgendwas umwandeln? Lass doch ein 'ö' auch einfach als 'ö' in die Datenbank einfließen, so dass es auch als 'ö' wieder ausgelesen wird und als 'ö' im Browser erscheint. Wozu willst du es unbedingt in -vermutlich- ö umwandeln? Damit dein Quelltext nachher schlechter lesbar ist? Wenn du ein Charset verwendest, das diese Zeichen enthält (meist ISO-8859-1 oder UTF-8), ist es völlig unnötig, diese Zeichen nochmal umzucodieren.
Worauf du allerdings _wirklich_ achten solltest, sind die HTML-Sonderzeichen '<', '>' und '&'. Die müssen tatsächlich in ihre entsprechende Entity-Schreibweise umgewandelt werden, damit sie bei der späteren Ausgabe im Browser keinen Unsinn anrichten. Dafür kannst du, wie mein Namensvetter schon (leider in falscher Schreibweise) vorgeschlagen hat, die PHP-Funktion htmlspecialchars() verwenden.
Diese Umwandlung würde ich übrigens nicht schon beim Eintragen in die Datenbank machen, sondern erst, wenn der Text wieder an den Browser ausgegeben wird.
Schönen Tag noch,
Martin
F: Was ist wichtiger: Die Sonne oder der Mond?
A: Der Mond. Denn er scheint nachts. Die Sonne dagegen scheint tagsüber, wenn es sowieso hell ist.