Avatar

Nochmal zum Problem mit den Umlauten - Und die Lösung (Technics)

by Auge ⌂, Thursday, February 02, 2017, 11:11 (2633 days ago) @ Sebastian Nast
edited by Auge, Thursday, February 02, 2017, 12:39

Hallo

also ich, als nicht IT-Spezie, war mit dem Problem völlig überfordert.
Aber zum Glück haben wir in unserem Autoforum einen Kollegen der
nicht nur Mercedes-Fan ist, sondern auch beruftlicher IT-Experte.

Der hat das wieder hin bekommen. :ok:

Ich befürchte, dass der Schein trügt. :-(

Meine Anmerkungen sind bitte nicht als Kritik, sondern als Richtigstellungen und Anregungen zu verstehen.

"Soooo sollte nun alles wieder gehen
Also nach einigem gesuche lag es letztendlich an einer PGP Funkion „htmlspecialchars“

Nein, an der Funktion selbst liegt es, wie ich später ausführen werde, nicht.

Diese Funktion ist vor JEDER Ausgabe in allen Dateien für das Forum eingebaut… Sie übersetzt sonderzeichen (ä) durch den entsprechenden HTML Code (ä)

Nein, die Funktion htmlspecialchars übersetzt zwar Sonderzeichen (im Kontext von HTML) aber nicht die Umlaute. Sonderzeichen sind <, > & sowie, wenn die entsprechenden Schalter gesetzt sind, " und '. Die Umlaute ersetzen würde die Funktion htmlentities. Die benutzen wir aber nicht.

Was allerdings zutrifft, ist der Umstand, dass die Umlaute durch die Umstellung der von PHP benutzten Standardkodierung auf UTF-8 die Skriptausführung stören und beenden. Die Beschreibung …

… Allerdings wurde die Default Value mal beim Wechsel zu PHP 5.3 umgestellt, früher war es latin und seitdem dann UTF-8… Da die Funktion also einen UTF8-Zeichensatz erwartet, aber stattdessen einen latin Zeichensatz bekommt, hat sie Probleme damit, weil sie das Format der Sonderzeichen nicht kennt…

… trifft also im Großen und Ganzen zu.

… Ich habe die Funktionsaufrufe nun so umgeschrieben, das er einen latin Zeichensatz (iso-8859-1) forciert. Also der Aufruf ist nun htmlspecialchars(<string>,ENT_COMPAT,'ISO-8859-1').

Zielführende Lösung an der falschen Stelle.

Dummerweise kann man das nicht irgendwo als Default setzen…

Doch das kann man und ich habe hier mehrere Ansätze beschrieben und um einen Test gebeten.

Alle diese Lösungen haben nämlich einen relevanten Vorteil gegenüber der Lösung deines Forumsmitgliedes. Sie gelten für den gesamten Skriptablauf aller zum Forum gehörenden Skripte. Es ist nämlich grundsätzlich keineswegs ausschließlich die Funktion htmlspecialchars betroffen. Es könnten noch weitere Stellen hochkommen, die nicht so oft aufgerufen werden und bei denen der Fehler nicht sofort auffällt.

Ich bitte also nochmals um einen Test (bevorzugt der dritten Lösung mit der .htaccess im Verzeichnis des Forums). Die Änderungen deines Mitstreiters sollten an der Stelle keine Probleme machen.

[edit]Die Änderungen beim Aufruf sollten zwar nicht stören, mit ihnen gibt es allerdings keinen Unterschied zwischen eingebauter oder nicht vorhandener .htaccess. Daher ist es sinnvoll, den Aufruf mit .htaccess mit einem Backup des Skripts im Zustand vor dem Umbau des Funktionsaufrufs von htmlspecialchars zu testen.

Weiterhin bitte ich auch um Tests durch andere Betroffene, um eventuell vorhandene Unterschiede in den Serverkonfigurationen zu erkennen.[/edit]

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!


Complete thread:

 RSS Feed of thread