Hallo...
Danke für die Antwort.
Ich benutze eine MySQL-DB und habe dort schon versucht, mit mysql_real_escape_string() den Inhalt zu codieren, aber auch das klappt nicht??
Langsam verliere ich die Geduld :D
Wo kann ich da noch suchen?
Gruß,
Chriz
Moin!
Die Daten selber werden mit addslashes() in die DB geschrieben.
Schlechte Idee.
Wie überall nachzulesen ist, ist addslashes eine Funktion, die seitens PHP dafür sorgt, dass Anführungszeichen und Slashes mit Slashes entschärft werden.
Das sind aber nicht die einzigen Zeichen, die in Datenbanken zu Problemen führen. Addslashes ist deshalb für die Verwendung als Datenbankescaping nicht geeignet!
Und genau deshalb stellen Datenbankinterfaces ihrerseits Funktionen zur Verfügung, die das Entschärfen böser Zeichen ebenfalls übernehmen. Konsultiere dazu mal das PHP-Handbuch (die verwendete Datenbank hast du ja nicht genannt, und sie läßt sich aus deinem Code auch nicht ermitteln).
Wenn ich das Bild nun ausgeben lasse, ist dieses kaputt :(
$data = stripslashes($show->f("data"));
$type = $show->f("type");stripslashes() hat an dieser Stelle auch nichts zu suchen. Escaping ist nur einmal erforderlich, beim Schreiben in die Datenbank. Die dabei hinzugefügten Escape-Zeichen werden durch diesen Vorgang eliminiert und nicht in der Datenbank gespeichert - und auch nicht beim erneuten Auslesen wieder hinzugefügt.
- Sven Rautenberg