Markus Baersch

Software · Beratung · Lösungen

Start » Blog » PHP

29.06.2013

Es hat ein wenig gedauert, bis ich überhaupt darauf aufmerksam gemacht wurde, aber nach dem "Zwangsupdate" meines Hostingpakets bei 1&1 hatte ich (nach kurzen Problemen, die ich mir per .htaccess-Anweisung eingefangen hatte) eigentlich gedacht, dass alles funktioniert.

Falsch: Sowohl das Tool zur Bereinigung von Seitenquellcode als auch das Kontaktformular hat leider nicht immer funktioniert. Je nach Nachricht bzw. umzuwandelndem Text gab es Störungen, die ich nun mit einiger Mühe auf "verschwundene" Variablenwerte zurückgeführt habe. Die Ursache: wer wie ich von htmlentities() oder htmlspecialchars() Gebrauch macht, sollte wissen, dass nun ein anderer Zeichensatz (natürlich utf-8) als Voreinstellung gilt und so wird durch die anderen - ebenso nicht gesetzten und mit neuen Defaults versehenen Optionen - schnell aus einem String ein Nichts. Leerzeichen an der falschen Stelle oder Umlaute sind typische Auslöser. Das Problem ist - einmal gefunden - aber schnell zu beheben, indem alle Aufrufe angepasst werden, um das bisherige Verhalten wiederherzustellen.

Aus...

htmlentities($txt);

... wird dazu...

htmlentities($txt, ENT_COMPAT,'ISO-8859-1', true);

... und schon ist das Problem vermutlich behoben. Wer also ähnliche Probleme hat, findet hoffentlich diesen Beitrag 😉

© 2001 - 2018 Markus Baersch