mysql-Datenbank Zeichensatz
Hallo,
nachdem ich jetzt den Umzug des Forums geschafft habe ist noch ein Problem übrig:
In den Beiträgen stehen statt Umlauten Fragezeichen. Also beispielsweise "sch?n" statt "schön".
Das scheint mit dem Zeichensatz der Datenbank zusammenzuhängen. Ich habe auch hier schon experimentiert, aber leider ohne Erfolg. Ich konnte durch ändern des Zeichensatzes beim Import auf Latin1 die Fragezeichen durch Fragezeichen in schwarzem auf der Spitze stehendem Quadrat ersetzen.
Die vom alten Server exportierte Datenbank besitzt den Zeichensatz "Latin1", der neue Server scheint "UTF8" zu benutzen.
Wie kann ich das korrigieren? Mir fehlt da der irgendwie der Überblick.
nachdem ich jetzt den Umzug des Forums geschafft habe ist noch ein Problem übrig:
In den Beiträgen stehen statt Umlauten Fragezeichen. Also beispielsweise "sch?n" statt "schön".
Das scheint mit dem Zeichensatz der Datenbank zusammenzuhängen. Ich habe auch hier schon experimentiert, aber leider ohne Erfolg. Ich konnte durch ändern des Zeichensatzes beim Import auf Latin1 die Fragezeichen durch Fragezeichen in schwarzem auf der Spitze stehendem Quadrat ersetzen.
Die vom alten Server exportierte Datenbank besitzt den Zeichensatz "Latin1", der neue Server scheint "UTF8" zu benutzen.
Wie kann ich das korrigieren? Mir fehlt da der irgendwie der Überblick.
Hallo Lighty,
ich habe jetzt PHP 7.0 laufen und MariaDB 5.5.56.
Die Forensoftware ist 4.2.1.
Der alte Server nutzt PHP 5.4.41-1~dotdeb+6.1 und Mysql 5.1.73.
Heute habe ich wieder experimentiert, leider aber ohne Erfolg.
Wenn ich einen neuen Post schreibe, dann werden die Umlaute korrekt wiedergegeben ( ö -> ö). Wenn ich im SQL-Dump ein ö durch ö ersetze und das dann importiere, dann passiert leider nicht was ich erwarte.
Mir fehlt wohl Wissen um die Zusammenhänge.
ich habe jetzt PHP 7.0 laufen und MariaDB 5.5.56.
Die Forensoftware ist 4.2.1.
Der alte Server nutzt PHP 5.4.41-1~dotdeb+6.1 und Mysql 5.1.73.
Heute habe ich wieder experimentiert, leider aber ohne Erfolg.
Wenn ich einen neuen Post schreibe, dann werden die Umlaute korrekt wiedergegeben ( ö -> ö). Wenn ich im SQL-Dump ein ö durch ö ersetze und das dann importiere, dann passiert leider nicht was ich erwarte.
Mir fehlt wohl Wissen um die Zusammenhänge.
Für einen Außenstehenden: Wie ist eigentlich die Datenbankverbindung innerhalb der Forensoftware bei Nutzung von PHP7 geplant? MySQLi oder PDO? Oder liegt das in den Händen des Administrators?
Schau mal bitte hier. Das hat schon vielen mit identischer Problematik geholfen!
Evtl. auch mal hier schauen.
Artikel, mit Hilfepotential: hier.
Schau mal bitte hier. Das hat schon vielen mit identischer Problematik geholfen!
Evtl. auch mal hier schauen.
Artikel, mit Hilfepotential: hier.
Hallo gba !
... sorry, bin derzeit leicht außer Gefecht - daher nur kurz !
[PHP]define('CHARSET', 'ISO-8859-1');
define('REPLACE_FLAGS', ENT_COMPAT | ENT_XHTML);[/PHP]
... sollte das nicht vorhanden sein, schau dir bitte mal dieses Thema an !
http://www.lightys-pchilfe-forum.info/t ... goto=31772
Bist du sicher das du PHP 7 nutzt !?
Das habe ich in einem Testforum nämlich bisher nicht ans laufen bekommen - da hagelt es Fehler !
... sorry, bin derzeit leicht außer Gefecht - daher nur kurz !
Schau mal bitte in die config.inc.php und suche nach folgenden Zeilen !gba hat geschrieben:ich habe jetzt PHP 7.0 laufen und MariaDB 5.5.56.
Die Forensoftware ist 4.2.1.
Der alte Server nutzt PHP 5.4.41-1~dotdeb+6.1 und Mysql 5.1.73.
[PHP]define('CHARSET', 'ISO-8859-1');
define('REPLACE_FLAGS', ENT_COMPAT | ENT_XHTML);[/PHP]
... sollte das nicht vorhanden sein, schau dir bitte mal dieses Thema an !
http://www.lightys-pchilfe-forum.info/t ... goto=31772
Bist du sicher das du PHP 7 nutzt !?
Das habe ich in einem Testforum nämlich bisher nicht ans laufen bekommen - da hagelt es Fehler !
LG, Lighty
So, heute habe ich weiter an dem Problem gearbeitet.
Mit dem Aussage auf dem Server läuft php7.0 habe ich mich geirrt. Da die php-Version für jedes Verzeichnis unterschiedlich eingestellt werden kann hatte ich da das falsche Verzeichnis eingestellt.
Ich habe für das Forum php 5.6.32 eingestellt, Mysql ist Version 5.5.56-MariaDB.
Nachdem ich schon erste Erfolge mit dem Zeichensatzproblem erreicht hatte habe ich leider einen echt doofen Fehler gemacht:
Ich habe mal testweise php 7.1 eingestellt ohne vorher ein Backup gemacht zu haben. Seit dem läuft es leider nicht mehr, ich bekomme keine Ausgabe mehr, wenn ich das Forum aufrufe. Ich habe wieder auf php 5.6 zurückgestellt, aber da tut sich trotzdem nichts.
Meine Untersuchung hat ergeben, dass die index.php gestartet wird, aber schon die head.php scheint nicht gefunden zu werden, denn die Programmausführung bricht ab.
Wie kommt das, bzw. wie behebe ich diesen Fehler?
Mit dem Aussage auf dem Server läuft php7.0 habe ich mich geirrt. Da die php-Version für jedes Verzeichnis unterschiedlich eingestellt werden kann hatte ich da das falsche Verzeichnis eingestellt.
Ich habe für das Forum php 5.6.32 eingestellt, Mysql ist Version 5.5.56-MariaDB.
Nachdem ich schon erste Erfolge mit dem Zeichensatzproblem erreicht hatte habe ich leider einen echt doofen Fehler gemacht:
Ich habe mal testweise php 7.1 eingestellt ohne vorher ein Backup gemacht zu haben. Seit dem läuft es leider nicht mehr, ich bekomme keine Ausgabe mehr, wenn ich das Forum aufrufe. Ich habe wieder auf php 5.6 zurückgestellt, aber da tut sich trotzdem nichts.
Meine Untersuchung hat ergeben, dass die index.php gestartet wird, aber schon die head.php scheint nicht gefunden zu werden, denn die Programmausführung bricht ab.
Wie kommt das, bzw. wie behebe ich diesen Fehler?
So, ich habe nochmal weiter getestet.
Es ist so, dass die head.php nicht aufgerufen wird. Ich habe da einige echo-Zeilen reingeschrieben, ebenso wie in die index.php, und die Echo-Ausgaben der head.php fehlen. Danach kommt aus der index.php nichts mehr.
Außerdem habe ich mal eine eigene kleine php-Datei geschrieben, die nur eine echo-Ausgabe beinhaltet. Die habe ich mit require eingebunden und deren Ausgabe kommt. Also scheint es nicht am Dateipfad zu liegen.
Es ist so, dass die head.php nicht aufgerufen wird. Ich habe da einige echo-Zeilen reingeschrieben, ebenso wie in die index.php, und die Echo-Ausgaben der head.php fehlen. Danach kommt aus der index.php nichts mehr.
Außerdem habe ich mal eine eigene kleine php-Datei geschrieben, die nur eine echo-Ausgabe beinhaltet. Die habe ich mit require eingebunden und deren Ausgabe kommt. Also scheint es nicht am Dateipfad zu liegen.
Habe das Problem weiter untersucht. Ich hatte bei meiner Fehlersuche einen Syntaxfehler eingebaut (ach, ich vermisse die Debug-Möglichkeiten der PC-Compiler...).
Die "head.php" wird aufgerufen. Die Programmausführung stoppt jetzt in dieser Zeile der "head.php":
$_db = new pmf_db($_cfg['DB_SERVER'], $_cfg['DB_USER'], $_cfg['DB_PASS'], $_cfg['DB_NAME'], $_cfg['DB_PCONNECT']);
Meine Internetrecherche ergab, dass diese Zeile mit Klassen zu tun hat.
Kann es sein, dass ich da eine PHP-Erweiterung brauche?
Die "head.php" wird aufgerufen. Die Programmausführung stoppt jetzt in dieser Zeile der "head.php":
$_db = new pmf_db($_cfg['DB_SERVER'], $_cfg['DB_USER'], $_cfg['DB_PASS'], $_cfg['DB_NAME'], $_cfg['DB_PCONNECT']);
Meine Internetrecherche ergab, dass diese Zeile mit Klassen zu tun hat.
Kann es sein, dass ich da eine PHP-Erweiterung brauche?
Ich verstehe irgendwie nicht, was das Ganze soll! Seit Mitte 2014 ist PHP 7 draußen und sollte eigentlich inzwischen etablierter Standard für alle Entwickler sein. Schon alleine aus Sicherheitsgründen! Von der besseren Performance mal ganz abgesehen...
Viele Komponenten der alten PHP Versionen sind stillgelegt oder auf deprecated geschaltet, können oder sollen also nicht mehr angewendet werden. Datenbankanbindung sollte eigentlich ausschließlich per PDO erfolgen; der mysql Kram ist faktisch schon sträflicher Leichtsinn.
Und statt sich mit diesen Tatsachen zu beschäftigen, wird hier auf olle Kammelle runtergeschaltet und sich damit mehr Arbeit gemacht, als sich lohnt.
Wenn in nicht all zu ferner Zukunft sich die Provider* zusammen tun und alles unter 7.0.* rausnehmen ("aus Gründen der Abwärtskompatibilität beibehalten" noch unterstützt, heißt nicht, dass das ewig drin bleibt!), die alten Versionen gezielt ausbremsen, dann ist das Gejammer groß.
* Und nicht nur die! Die Browservertreiber zeigen ja ständig, wie es gehen kann: da wird rausgeschmissen, zwangsgeleitet und vorgeschrieben, das es nur so kracht (siehe FlashPlayer...). Die nehmen dann einfach die Unterstützung für alles unter 7 raus. Zumal PHP 5.6 ab nächsten Jahr nicht mehr supportet wird, geht das schneller, als man schauen kann! Und dann ist auch im privaten Sektor Schluß mit PHP 5.x.
Viele Komponenten der alten PHP Versionen sind stillgelegt oder auf deprecated geschaltet, können oder sollen also nicht mehr angewendet werden. Datenbankanbindung sollte eigentlich ausschließlich per PDO erfolgen; der mysql Kram ist faktisch schon sträflicher Leichtsinn.
Und statt sich mit diesen Tatsachen zu beschäftigen, wird hier auf olle Kammelle runtergeschaltet und sich damit mehr Arbeit gemacht, als sich lohnt.
Wenn in nicht all zu ferner Zukunft sich die Provider* zusammen tun und alles unter 7.0.* rausnehmen ("aus Gründen der Abwärtskompatibilität beibehalten" noch unterstützt, heißt nicht, dass das ewig drin bleibt!), die alten Versionen gezielt ausbremsen, dann ist das Gejammer groß.
* Und nicht nur die! Die Browservertreiber zeigen ja ständig, wie es gehen kann: da wird rausgeschmissen, zwangsgeleitet und vorgeschrieben, das es nur so kracht (siehe FlashPlayer...). Die nehmen dann einfach die Unterstützung für alles unter 7 raus. Zumal PHP 5.6 ab nächsten Jahr nicht mehr supportet wird, geht das schneller, als man schauen kann! Und dann ist auch im privaten Sektor Schluß mit PHP 5.x.
Hallo gba !
PHP 5.6 war bisher eigentlich kein Problem - da waren auch nicht viele Änderungen erforderlich !
Für PHP 7 fehlt mir aktuell allerdings der Ansatz !
@Arananka
... ja ja ja, reden kann man viel - das Umsetzen ist das Problem !
Bisher sind alle Versuche die Software umzuändern mit Fehlermeldungen ( und nicht gerade wenige ) quittiert worden !
... mmmh !?gba hat geschrieben:Er hat das Forum jetzt mal so angepasst, dass es wieder unter php5.6 läuft.
Bin gerade dabei zu testen, ob alles richtig funktioniert.
PHP 5.6 war bisher eigentlich kein Problem - da waren auch nicht viele Änderungen erforderlich !
Für PHP 7 fehlt mir aktuell allerdings der Ansatz !
@Arananka
... ja ja ja, reden kann man viel - das Umsetzen ist das Problem !
Bisher sind alle Versuche die Software umzuändern mit Fehlermeldungen ( und nicht gerade wenige ) quittiert worden !
LG, Lighty