Tach!
ich versuche gerade Benutzereingaben für ein mini-selfmade Forum vernünftig zu escapen.
Das ist nicht der richtige Ansatz. Nicht die Benutzereingaben sind das Problem, sondern dass Daten, egal welcher Herkunft, stets dem Ausgabekontext gerecht notiert/maskiert werden müssen.
Vergiss deine Funktion und betrachte in jeder Situation lediglich nur das jeweilige Ziel.
- Strings im MySQL-Statement: Escaping für MySQL (mysqli_real_escape_string())
- Zahlen im MySQL-Statement: innerhalb von Anführungszeichen wie Strings; außerhalb mit intval() o.ä. die Zahl sicherstellen
- HTML: htmlspecialchars() (htmlentities() macht viel zu viel)
- URL: ...
- Javascript: ...
- ...
Siehe Kontextwechsel-Artikel.
dedlfix.