Hallo,
wir hatten vor einiger Zeit unsere Datenbank aus der Shopversion 4.1.3 für die Version 4.2.0 mit Hilfe des OXID-UTF-8-Updates umgestellt.
Ging an sich auch alles. Nun rief mich der Kunde an und meinte, die “Passwort vergessen”-Funktion arbeitet nicht.
Wir haben rumgeforscht, woran das liegen könnte und haben dann die CE 4.2.0 herangezogen und in die core geschaut. Die Funktion, welche den Schlüssel für die “Passwort vergessen”-Funktion liefert, bildet diesen aus md5( concat (oxuser.oxid, oxuser.shopid, oxuser.oxexpkey ) ).
Ich habe nun an meinem User direkt auf der DB probiert, den resultierenden Query auszuführen und stoß auf einen Syntaxfehler.
Concat beschwert sich darüber, dass er nicht verschiedene Zeichensätze zusammenfügen kann. Ein Blick in die Tabelle oxuser verrät, dass oxid nach wie vor auf latin steht. Die beiden anderen Felder jedoch auf UTF-8 (vermutlich vom UTF-8-Update).
Wenn ich nun die OXID auch auf UTF-8 umstelle, geht die Funktion auch wieder. Allerdings zickt dann der gesamte Bestellvorgang, welcher hier vermutlich dann die User nicht mehr zusammen bekommt wegen falscher OXID oder sowas.
Kann ich nun die gesamte OXID-DB auf UTF-8 umstellen, oder hat das bekannte Folgeprobleme? Offenbar beissen sich ja einfach nur die bestehenden verschiedenen Zeichensätze.
Und, wenn das so funktionieren sollte, wie kann ich denn am bequemsten die DB komplett auf UTF-8 umstellen?
Grüße Christian
Das Problem wird langsam dringender
Hat das sonst noch keiner gehabt?
wie gesagt: wir haben genau das Ding genutzt - allerdings die deutsche Version: http://www.oxid-esales.com/de/resources/help-faq/eshop-manual/von-4010-auf-410-upgraden-mit-utf-8-zeichenkodierung
Ich habe die SQL-Update-Datei noch mal durchforstet. Die Felder wurden so umgestellt, wie es wohl gedacht war. Daraus resultiert aber eben genau oben beschriebener Fehler.
Grüße Christian
Die Anleitung ist doch wenn man von der 4.0.1.0 auf die 4.1.0 updatet. Gerade mit den größeren Änderungen in der 4.2.0 hat sich vielleicht etwas geändert, was damals noch nicht berücksigtigt war. Vielleicht ist es ein Versionskonflikt. Bin ich froh, dass ich das bei dem Wechsel auf dei 4.1.0 schon gemacht habe und es (mehr oder weniger) lief.
Hallo Firefax,
nene, im Gegenteil, die Anleitung ist für die Versionen AB 4.1.1. die beiden unterschiedlichen Versionen unterscheiden sich auch nur geringfügig und jeweils nur in Punkten, die nichts mit unserem Problem zu tun haben
ist es denn grundsätzlich problematisch alle Datenbankfelder auf UTF8 umzustellen?
Momentan rührt das Problem ja nur aus verschiedenen Zeichensätzen bei gewissen Funktionen.
Grüße Christian
Hallo Christian,
ist es denn grundsätzlich problematisch alle Datenbankfelder auf UTF8 umzustellen?
Merkwürdig, normalerweise sollte das Script das schon erledigt haben…
Aber warum probierst Du es nicht einfach in einer Testumgebung? Mehr als um die Ohren fliegen kann es doch nicht…
Gruß
Also das Script tastet grundsätzlich nicht die OXID-Felder an - genauso wie einige andere. Also würdest du jetzt behaupten, dass es ursprünglich sogar so gedacht war?
Und zwecks probieren… wir haben hier leider noch diverse andere Sachen auf dem Tisch, welche was zeitkritisch sind. Wollte so wenig wie nur möglich sinnlos Zeit reinstecken, wenn es hier quasie den Superweg gibt
Aber vermutlich hast du recht und es führt letztendlich kein Weg daran vorbei.
[QUOTE=chrisi51;26199]Also das Script tastet grundsätzlich nicht die OXID-Felder an - genauso wie einige andere. Also würdest du jetzt behaupten, dass es ursprünglich sogar so gedacht war?[/QUOTE]
Kann ich nicht wirklich sagen. Ich weiss nicht, wie es ursprünglich gedacht war, könnte mir aber vorstellen, dass bei einem UTF-8-Shop schon alles in UTF-8 vorliegen sollte. Auch die Kollation der Datenbank.
[QUOTE=chrisi51;26199]Und zwecks probieren… wir haben hier leider noch diverse andere Sachen auf dem Tisch, welche was zeitkritisch sind. Wollte so wenig wie nur möglich sinnlos Zeit reinstecken, wenn es hier quasie den Superweg gibt
Aber vermutlich hast du recht und es führt letztendlich kein Weg daran vorbei.[/QUOTE]
Immer! Ihr müsst immer erst in einer Testumgebung probieren, alles andere ist quasi unprofessionell und kann leicht ins Auge gehen.
Gruß
ne falsch verstanden
Klar im Testsystem erstmal probieren. Ich meinte nur, dass ich jetzt nicht sinnlos rumdoktern wollte, wenn ich doch hier evtl. direkt einen richtigen Weg erfahre. (Welchen ich dann natürlich testen kann)
Ich werd’s also einfach mal probieren. Bleibt die Frage, wie man am besten automatisiert die Kollation der restlichen Felder umstellt. Wenn da wer eine Idee hat, wär ich dankbar. Ansonsten geht’s wohl an Dr. Google
Grüße Christian