Thread Verfasser: Joke
Thread ID: 1453
Thread Info
Es gibt 4 Beiträge zu diesem Thema, und es wurde 310 Mal angesehen.
 Thema drucken
Update Fix
Joke
Hallo zusammen!

Ich habe PHP Fusion neu installiert und auch alles funktioniert!

Dann habe ich den fusion702-fix for php 7 von dieser Seite installiert und dann kam das Problem!!!

Plötzlich habe ich keine Umlaute mehr. Alle ü ä ö werden seltsam dagestellt. Vor dem Update war alles in Ordnung.

Kann mir jemand helfen oder muss ich alles neu machen???

Gruss
Joke
 
Systemweb
Wenn du eh neu installierst wäre es besser gewesen, gleich mit dem Fix zu starten. Der setzt nämlich von Beginn an den zu verwendenden Zeichensatz in der Datenbank auf den aktuellen utf8mb4, welcher insbesondere mit deutschen Sonderzeichen besser klarkommt.

Beim originalen Fusion hatte jeder Bereich bzw. jede einzelne Infusion wild durcheinander ein mal utf8, dann wieder latin usw. als Zeichensatz in Verwendung. Nach Ex- und Import der Datenbank, beispielsweise bei einem Anbieterwechsel zum neuen Webspace war die HP in aller Regel mit Umlautfehlern präpariert wie es deine jetzt ist.

Aber prinzipiell musst du nicht alles neu machen. Die verstümmelten Umlaute sollten sich lediglich auf bereits verfasste Inhalte und Beiträge beschränken. Wenn du erst kürzlich mit deinem Homepage-Projekt begonnen hast sollte das nicht allzu viel sein und der betreffende Text kann vom Admin bearbeitet werden.

Wenn der Aufwand doch größer ist, kommentiere einfach die betreffende Zeile in includes/db_handlers/mysqli_functions_include.php aus.
Ab Zeile 128
mysqli_set_charset($db_connect, 'utf8mb4');
dbquery("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");

einfach ändern in
// mysqli_set_charset($db_connect, 'utf8mb4');
// dbquery("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");


Für den PDO-Handler wäre das auch machbar, aber nicht ganz so easy wie hier.
Du solltest nur noch sicherstellen, dass du mittels mysqli zur DB verbindest. Deine config.php im Hauptverzeichnis der Homepage sollte darum folgende Zeile enthalten (noch vor dem schließenden ?>):
$db_driver = "mysqli";

Der Rolly hatte hier im Forum mal ein Script vorgestellt, was die Datenbank einer bereits bestehenden Homepage im Nachhinein auf die neue Norm umschreibt und damit alle Sonderzeichen korrigiert. Vielleicht sprichst du ihn mal darauf an. Dann brauchst du obige Schritte nicht ausführen.
 
Joke
Danke für die schnelle Antwort!

Bei mir in der mysqli_functions_include befindet sich unter der Zeile 128 aber etwas anderes:

mysqli_set_charset($db_connect, 'utf8'Wink;
dbquery("SET NAMES 'utf8'"Wink;

Ich habe die beiden Zeile aber trotzdem auskommentiert und siehe da die Umlaute sind wieder da!

Kann es auch sein das der Fehler davon gekommen ist? Meine Datenbank läuft auf uft8mb4_unicode_ci

Gruss
Joke
 
Systemweb
Da hab ich wohl beim Zusammenstellen des letzten Updatepacks schlichtweg geschlampt und den falschen (aus einer Vorgängerversion vom Update stammenden) Handler reingepackt. ;)
Muss ich beim nächsten Update korrigieren.

Wenn deine Datenbank bereits auf Zeichensatz utf8mb4 gesetzt ist müsstest du nur (so wie es eigentlich sein sollte) diese 2 Zeilen auf obige Angabe korrigieren:
mysqli_set_charset($db_connect, 'utf8mb4');
dbquery("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");


Somit kommuniziert deine Homepage ab sofort mit der Datenbank unter verwendung des Zeichensatzes, den deine Datenbank als Standard verwendet. Umlautfehler wird es mit diesem nicht mehr geben, da utf8mb4 im Vergleich zu utf8 über ein größeres Spectrum an darstellbaren Zeichen verfügt.
 
Springe ins Forum:
Thema Forum Antworten Letzter Beitrag
Update für PHP 7.2 Sonstiges 4 22.12.2017 um 07:58
Version / Update Anfängerfragen 5 07.02.2017 um 11:14
Nach Update von 6.01.19 auf 7.00.00 Datenbank-Umlaute kaputt Anfängerfragen 3 11.01.2017 um 09:28
Nach Update auf V9 kein einloggen mehr möglich Installation und Updates 1 24.04.2016 um 19:36
Update von 7.00.07 auf die aktuelle Version Allgemeine Fragen und Probleme 1 01.11.2015 um 21:17