hi,
was als erstes auffällt, ist dein vorgehen zum "absichern" der daten beim eintragen in die DB.
gut, dass du dir überhaupt gedanken gemacht hast, aber m.E. nicht ganz in die richtige richtung.
stripslashes wendest du auf die übergebenen daten an, wenn nötig - gut.
aber vor dem eintragen in die DB solltest du die daten mit mysql_escape_string() oder mysql_real_escape_string() absichern, _nicht_ mit addslashes. das läuft zwar in den allermeisten fällen auf das selbe hinaus - aber die mysql_escape_string-funktionen sind extra dafür gedacht, die daten für mysql-queries abzusichern, also sollten sie an der stelle auch genutzt werden.
und bei der ausgabe benutzt du dann wiederum deine stripslashes-funktion - das ist aber an der stelle vermutlich sogar eher hinderlich.
das maskieren erfolgt ausschließlich zur korrekten übergabe an die datenbank-_schnittstelle_. in den daten in der datenbank selber sind dann eventuell zu maskierungszwecken hinzugefügte \ schon gar nicht mehr vorhanden - es besteht also keine notwendigkeit, beim auslesen und ausgeben nochmals die slashes zu strippen [1] - im gegenteil, es kann sogar eher kontraproduktiv sein, weil dann ein vom benutzer gewollte eingegebenes \ dadurch entfernt wird, und in der ausgabe _ganz fehlt_.
gruß,
wahsaga
[1] es sei denn, magic_quotes_runtime wäre aktiviert, dann würden aus der DB ausgelesene daten ggf. auch noch mal ge"slasht". aber default für diese einstellung ist off.
wenn man's ganz genau nehmen und portabel halten will, wäre hier ggf. noch mal eine prüfung analog zu get_magic_quotes_gpc angesagt.
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."