Thread Verfasser: Joke
Thread ID: 1453
Thread Info
Es gibt 4 Beiträge zu diesem Thema, und es wurde 3361 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
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Krelli
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.
Information:
PHP Version: 8.2.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD
 
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
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Krelli
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.
Information:
PHP Version: 8.2.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD
 
Springe ins Forum: