echo $begrüßung;
Mein Problem mit PhpMyAdmin war wie folgt:
Normalerweise macht der PMA keine Probleme beim Thema Kodierung. Fehler waren in allen bisherigen (mir bekannt gewordenen) Fällen außerhalb seines Zuständigkeitsbereichs verursacht worden, meist indem keine Verbindungskodierung angegeben wurde und die Daten in einer anderen als der Server-Default-Kodierung importiert wurden.
Mir ist etwas weiteres aufgefallen, was vielleicht die Ursache ist.
Ich glaube nicht, dass das die wirkliche Ursache ist, sondern nur die Auswirkungen eines bereits vorher begangenen Fehlers.
Angenommen man ändert mit PhpMyAdmin beim User "demo1" in der Spalte "AddressField" etwas. Dann lautet der Update Befehl von PhpMyAdmin hinterher:
UPDATE
user
SETpwd
= 'TB.·þ2d]bæø',AddressField
= 'Bochum' WHEREuser
.UserID
=3 LIMIT 1
Es wird also auch die Spalte "pwd" geändert obwohl ja dort nichts geändert wurde.
Vielleicht nimmt PMA an, dass sich etwas geändert hat, weil es ein Problem mit durch ein Kodierungsproblem verursachter Datenverfälschung in der gesamten Verarbeitungskette gab. Genaueres vermag ich über Ferndiagnose nicht zu sagen.
Vermutlich liegt aber das Passwort Prolem daran das die Sonderzeichen im Passwort anders gespeichert werden??
Ich weiß nicht, welche Verschlüsslung du verwendest, und welche Zeichen die daraus resultierende Zeichenkette verwendet.
Angenommen ich stelle alle Tabellen, Spalten und Felder auf "UTF8" um.
Können sich die Anwender dann immer noch auf der PHP Weboberfläche im Login Bereich mit ihren alten Passwörtern anmelden?
Das Umstellen der Felder-Kodierung betrifft nur die interne Datenhaltung. Welche Kodierung der Client zum Senden von Statements und welche für die Ergebnismenge verwendet wird, ist pro Verbindung auszuhandeln, sonst gilt die Server-Default-Einstellung. Gegebenenfalls wandelt MySQL zwischen den Kodierungen hin und her.
Oder muss ich zusätzlich in meinem PHP Script noch sagen das die Verbindung zum MySQL auch über UTF8 laufen muss?
Ja, das wäre sinnvoll und bei Abweichung von der Server-Default-Kodierung auch notwendig, wenn du keinen Datenverlust haben möchtest. Du musst die Kodierung angeben, die du verwenden willst, dann auch wirklich diese Kodierung verwenden, denn von allein konvertiert ein Client nichts.
Um dich mit dem Thema vertraut zu machen, solltest du dir eine Testumgebung aufsetzen, und den Datenaustausch zwischen Client und Server testen. Wenn du am lebenden Objekt forschst, machst du dir vielleicht noch mehr kaputt, als es schon ist. Wenn die Testumgebung zufriedenstellend funktioniert, nimm eine Kopie deiner Produktivdaten und teste damit.
echo "$verabschiedung $name";