Moin!
Ich hatte diesen merkwürdingen Fehler neulich schon mal, und habe ihn mir eben leider nicht gemerkt. Da ich noch nicht herausgefunden habe, wann htmlspecialchars() nun noch arbeitet und wann nicht, muss ich also erst einmal alle wesentlichen Skripte nacharbeiten und die Parameter ergänzen.
BTW: hier wäre jetzt der Tag "Bug?" angebracht. Und später dann vielleicht noch "Bug!" ;-))
Laut Dokumentation liefert htmlspecialchars() einen leeren String, wenn es "glaubt"
ini_get("default_charset")
in der Kodierung "A" zu arbeiten, aber einen String verarbeiten soll, der in der Kodierung "B" ist und Zeichen enthält, die in der Kodierung "A" nicht vorgesehen sind.
Das ergibt sich allerdings nur wenn man wirklich alles liest:
- **ENT_IGNORE **: Verwirft ungültige Code Unit Sequenzen anstatt eine leere Zeichenkette zurückzugeben. Die Nutzung dieser Option ist nicht empfehlenswert, da sie » Auswirkungen auf die Sicherheit haben kann.
- ENT_SUBSTITUTE: Ersetzt ungültige Code Unit Sequenzen mit einem Unicode Ersatz Zeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls) anstatt eine leere Zeichenkette zurückzugeben.
Ich würde also sagen, nicht das Programm ist "buggy", sondern die Dokumentation, die darauf deutlicher hinwiesen sollte.
Jörg Reinholz