Diese Board wurde aus Spamschutz-Gründen auf minimale Funktionen beschränkt.
Nutze für neue Anfragen/Bug-Reports bitte meine Gitlab-Instanz.

Umlaute Problem mit PHP 5.4

Was könnte man an der Filmverwaltung verbessern? Fragen und Anregungen von Entwickler an Entwickler.

Moderator: Lifestyle

Antworten
blue
Beiträge: 6
Registriert: Mo 30. Apr 2012, 20:20

Umlaute Problem mit PHP 5.4

Beitrag von blue »

Hallo zusammen
Hoffentlich kenn mir jemdand helfen! Bei meinem Webspace wurde die PHP Version von 5.3 auf 5.4 angehoben.
Jetzt habe ich ein Problem beim Eintragen von neuen Filmen.
Jedes Feld in dem ein Umlaut vorkommt wird nicht mehr in der MySQL Datenbank abgespeichert. Manuelles eintragen in die Datenbank von Umlauten funktioniert normal.

Nach längerer Recherche habe ich folgendes gefunden:
Missing some chars like german umlauts after use of htmlspecialchars? That's because the third param encoding has changed it's default value in PHP 5.4 from ISO-8859-1 to UTF-8.

Possible solution #1:
Change your code from this ...
<?php htmlspecialchars( 'äöü' ); ?>
... to this:
<?php htmlspecialchars ( 'äöü' , ENT_COMPAT | ENT_HTML401 , 'ISO-8859-1' ); ?>

Possible solution #2:
Create a wrapper function and replace htmlspecialchars( to i.e. isohtmlspecialchars( with your IDE/editor/shell...

Example of a wrapper function:
<?php
function isohtmlspecialchars( $str ){
return htmlspecialchars ( $str , ENT_COMPAT | ENT_HTML401 , 'ISO-8859-1' );
}
?>
Hilft mir das irgendwie? Die Funktion htmlspecialchars konnte ich per Suche leider nirgends finden. Kann mir jemand weiterhelfen? Vielleicht auch ein Tipp in welcher PHP Datei ich eine Anpassung vornehmen muss?
Benutzeravatar
der-domi
Site Admin
Beiträge: 673
Registriert: Di 4. Apr 2006, 19:22
Kontaktdaten:

Re: Umlaute Problem mit PHP 5.4

Beitrag von der-domi »

Hallo!
blue hat geschrieben:Jedes Feld in dem ein Umlaut vorkommt wird nicht mehr in der MySQL Datenbank abgespeichert.
Was passiert denn? Es gibt doch sicherlich eine Fehlermeldung.
blue hat geschrieben:Hilft mir das irgendwie? Die Funktion htmlspecialchars konnte ich per Suche leider nirgends finden.
Nö und richtig, da die Funktion auch nicht verwendet wird. I.d.R. werden alle Umlaute durch die Funktion htmlentities konvertiert und in der DB gespeichert. Es ist eher dort der Fehler zu suchen.
Nicht verzagen, Domi fragen

Viele Grüße
Dominik
blue
Beiträge: 6
Registriert: Mo 30. Apr 2012, 20:20

Re: Umlaute Problem mit PHP 5.4

Beitrag von blue »

Hallo Domi,

sorry für die späte Rückmeldung... danke erstmal für den Hinweis!
Ich habe gerade nochmal zum Test versucht einen Film einzutragen. Es kommt wirklich zu keiner Fehlermelung.

Gerade habe ich folgendes zu htmlentities gefunden:
http://php.net/manual/de/function.htmlentities.php

Unten im Changelog findet sich für Version 5.4 folgender eintrag:
Der Standardwert für encoding wurde zu UTF-8 geändert.

Ich werde die Tage versuchen das wieder auf ISO-8859-1 zu ändern und melde mich dann ob sich was getan hat.
blue
Beiträge: 6
Registriert: Mo 30. Apr 2012, 20:20

Re: Umlaute Problem mit PHP 5.4

Beitrag von blue »

Es hat geklappt :-)
Falls noch bei anderen das gleiche Problem auftaucht hier die Lösung:

In diversen Dateien muss die Funktion htmlentities um folgende Parameter erweitert werden:

Code: Alles auswählen

ENT_COMPAT | ENT_HTML401 , 'ISO-8859-1'
Ich musste in folgenden Dateien die Anpassungen vornehmen:

index2 (für die Kommentare)
clas.ctvar (für die Suche, die ging auch nicht mehr mit Umlauten)
Medu598_sentFilmEinfuegen

Falls man noch andere Dinge benötigt (neue Tonformate, Formate, Collectionen,...) muss es auch in den entsprechenden Dateien angepasst werden.

Vielen Dank nochmal an den Domi für den goldenen Tipp!
Benutzeravatar
der-domi
Site Admin
Beiträge: 673
Registriert: Di 4. Apr 2006, 19:22
Kontaktdaten:

Re: Umlaute Problem mit PHP 5.4

Beitrag von der-domi »

Hallo,

schön, dass du es gefunden hast. Evtl. kann man auch eine globale Einstellung mit ini_set (siehe settings/php.php) machen. Aber das ist nur eine Vermutung...
Nicht verzagen, Domi fragen

Viele Grüße
Dominik
Gast

Re: Umlaute Problem mit PHP 5.4

Beitrag von Gast »

Hallo zusammen,

ich habe das gleiche Problem und weiss leider nicht an welcher Stelle und wie ich die o.g. Änderungen vornehmen soll.

Vielleicht kann jemand den Code bzw. Codeschnipsel posten.

Vorab vielen Dank.
Antworten

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 1 Gast