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
"Love your nation - respect the others."