Hello,
Also speichere diesen Text, so wie er ist.
Das wäre die Aufgabe.
Da Du den Text aber vermutlich per Textschnittstelle (SQL) an eine Datenbank übergibst und nicht per Blockbuffer (Bei PHP und MySQL auch als 'Prepared Statement' bezeichnet), muss diese Textschnittstelle vor Daten geschützt werden, die sie anderenfalls als Steuerzeichen für sich selbst interpretieren würde. Dies geht immer am besten mit der dafür vom DBMS (vermutlich MySQL) und der benutzen API (hier PHP->DBMS) bereitgestellten Funktion. Es eignen sich dafür, je nach benutzten weiteren Funktionen
http://de3.php.net/manual/en/function.mysql-real-escape-string.php
http://de3.php.net/manual/en/mysqli.real-escape-string.php
wobei die mysqli-Funktionen zu bevorzugen sind. Sie sind überarbeitet worden bezüglich Sicherheit und Kompatiblität und werden überleben, während die ursprünglichen Mysql-Funktionen sicherlich irgendwann verschwinden werden aus dem Paket.
Gut, hab ich mal umgebaut. Bevor ein Eintrag jetzt eingebaut wird, wird auf ihn nur noch htmlspecialchars($Text) angewandt. Dieser wird dann so in die DB geschrieben.
Und genau DAS ist falsch. Htmlspecialchars() ist die Funktion zum Schutz der HTML-Schnittstelle, soll also vor der AUSGABE Richtung Browser benutzt werden. Um mit Daten aber ungestört arbeiten zu können, sollten diese in Rohform gespeichert werden, wenn es nicht einen triftigen Grund dagegen gibt.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg