ConPresso 4.0.12 und PHP 5.6

Allgemeine Diskussionen zu ConPresso 4. Handhabung, Möglichkeiten, Verständnisfragen.
Achtung: Bitte benutzt wenn möglich die themenspezifischen Foren!
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

ConPresso 4.0.12 und PHP 5.6

Beitrag von Mr. Magpie »

Wenn ich meinen bestehenden Webauftritt umstelle von PHP 5.5 auf PHP 5.6 - gehostet bei 1&1 - kommt es zu defekten Umlauten, siehe Bild:

Bild

Wisst Ihr eine Lösung dafür?
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Da wird vom Server wohl eine andere Codierung als ISO, vermutlich UTF-8 gesendet.

Bei mir hilft da immer eine Angabe der Codierung im HTML-Header, bei mir

Code: Alles auswählen

<meta http-equiv="content-type" content="text/html; charset=iso-8859-15" />
bei Dir sehe ich da

Code: Alles auswählen

<meta charset="iso-8859-1"/>
Vielleicht ist das für Deinen Browser etwas zu kurz formuliert.

Natürlich könnte man noch einen PHP-Header vorrausschicken.

Oder eben die Codierung des Servers ändern, aber das wird Dir bei 1&1 wohl kaum gelingen. Die haben momentan ja arge Probleme und legen seit Tagen fast alle Kundenauftritte lahm, um dann doch wieder zurückzurudern.

Bringt Dir die Umstellung auf PHP 5.6 außer Ärger irgendwas?

P.S. Du weißt schon, dass Du Bilder hier im Forum hochladen und später auch wieder löschen kannst und nicht auf Fremdseiten mit massiver Werbeeinblendung verlinken musst? In meinen Foren lösche ich sowas sofort... :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Danke Markus,

das brachte aber keine Veränderung im Frontend und auch das Backend - habe ich vorhin nicht erwähnt - glänzt weiter mit defekten Umlauten.

In den "Seiteninformationen" (von Firefox) sieht man, dass der Server unter PHP 5.6 wohl von einer UTF-8-Kodierung ausgeht und sich davon nicht abbringen lassen möchte:

Bild

Nein, die Umstellung auf PHP 5.6 bringt nur marginale und angebliche Performanz-Vorteile. Ich habe die Umstellung kurz testweise vorgenommen, weil die Probleme - 500 Internal Server Error - bei 1&1 eine ganze Reihe unserer Kundenwebsites betrafen und laut 1&1-Support mit PHP zusammenzuhängen schienen (fehlerhaftes Speichermanagement nach PHP-Routine-Update sagten sie).
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Die haben doch echt einen Knall.

Habe gerade mal nachgesehen. Letztes Jahr habe ich in einem Paket alles umgestellt, damit es mit PHP 5.4 läuft und dann diese Version auch festgelegt.
Jetzt haben sie die Auswahlmaske geändert und laut der ist keine PHP-Version mehr festgelegt!?! PHPinfo zeigt aber 5.4.35.

Was ist denn mit dem Memory-Limit bei neueren Versionen?
Bei 5.4 ja angeblich 90 MB. Faktisch aber nur gemessene 30MB.
Bei 5.5 und 5.6 angeblich 120MB. Was geht denn wirklich?

Testen mit folgendem Script:

Code: Alles auswählen

<?php
 $step = 1;
 while(TRUE) {
  $chunk = str_repeat('0123456789', 128*1024*$step++);
  print 'Memory usage: '. round(memory_get_usage()/(1024*1024)) . 'M<br />';
  unset($chunk);
 }
?>
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Folgenden Diagnosetipp habe ich gefunden:
Erscheinen &#65533;&#65533;&#65533; statt der erwarteten Umlaute äöü, dann werden oft ISO-8859-1 codierte Zeichen im Browser als UTF-8 interpretiert.

Mögliche Ursache:

Für den Header/Metatag ist charset=UTF-8 gesetzt, die Seiten sind jedoch nicht als UTF-8 gespeichert,
oder die Zeichen stammen aus einer nicht UTF-8 Fremdquelle (Datenbank, Datei, Window-System..)


Erscheinen Ausgaben wie ä ö ü für ä ö ü, dann werden oft UTF-8 codierte Zeichen als ISO 8859-1 interpretiert.

Mögliche Ursache:

Fehlender oder falscher Header/Metatag. Ein header('Content-Type: text/html; charset=UTF-8'); im PHP-Script löst in vielen Fällen schon das Problem.
Da bei mir unter PHP 5.6 &#65533; erscheinen, denke ich, dass man schon ConPresso auf UTF-8 umstellen müsste, was aber mehr als schwierig sein dürfte.
Günther Ludwig
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Unter PHP 5.5.20 ist 38MB der letzte noch allokierbare Wert :-(

:
Memory usage: 36M
Memory usage: 38M

Fatal error: Out of memory (allocated 262144) (tried to allocate 40632321 bytes)


Unter PHP 5.6.4 ist es noch ein bisserl weniger:

:
Memory usage: 35M
Memory usage: 36M

Fatal error: Out of memory (allocated 262144) (tried to allocate 39321601 bytes)
Günther Ludwig
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Der default_charset ist bei PHP 5.6.4 bei 1&1 übrigens nun "UTF-8!"
Bei PHP 5.4.20 war es noch "no value".

In http://php.net/manual/en/ini.core.php#i ... lt-charset heißt es
All versions of PHP will use this value as the charset within the default Content-Type header sent by PHP if the header isn't overridden by a call to header().
Der default Charset müsste dann also schon innerhalb von ConPresso auf bspw. ISO-8859-15 gesetzt werden, oder?
Zuletzt geändert von Mr. Magpie am 29.01.2015 17:37, insgesamt 1-mal geändert.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Ursache für das "gelogene" Memory-Limit ist übrigens, dass man in PHP einstellen kann was man will, der Apache aber ebenfalls ein Limit hat und das hat 1&1 gnadenlos runtergedreht. Der Kunde merkt das erst, wenn er es wirklich braucht, dann hat er aber schon einen Vertrag am Hals.

Für eine UTF8 Umstellung muss nicht nur Conpresso komplett in UTF8 codiert sein (hatte schon es mal probiert, aber irgendwas hakte dann doch immer) sondern auch die Datenbank muss zu 100% in UTF8 laufen, was sie eben standardmäßig nicht tut...

Und im Grunde habe ich keine Ahnung davon... :roll:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

habe meinen letzten Beitrag nochmal editiert gehabt
Günther Ludwig
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Ich hatte mal einen 1&1-Supportler an der Strippe, der meinte so etwas wie, dass das Menory-Linit von knapp 40 MB pro PHP-Thread gelte. Man habe ja aber von Paket zu Paket unterschiedleiche max. Thread-Anzahl-Werte. Und daher käme auch die Werbeaussage für ein bestimmtes Paket von 1&1, bei dem von 2 GByte RAM für PHP die Rede war :-)
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Theoretisch kannst Du mit einer header() Angabe in PHP die Ausgabe beeinflussen (siehe Deine Quelle).
Damit startet aber die Ausgabe an den Browser und Umleitungen sowie Sessions könnten in arge Probleme kommen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Und es würde wahrscheinlich noch nicht einmal was nützen, denn auch wenn ich über den php.ini-Eintrag default_charset=iso-8859-1 den default_charset setze, wird zwar über phpinfo() angezeigt, dass dies nun der default Charset sei, aber in den Seiteneinstellungen zeigt sich weiterhin, dass die Kodierung auf UTF-8 steht :evil:
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Ich denke diese Angabe ist weniger als Anweisung an den Browser gedacht sondern als Angabe für die interne Verarbeitung.

Teste doch mal eine einfache Datei mit

Code: Alles auswählen

<?php
header('Content-type: text/html; charset=ISO-8859-1'); 
echo "Test äöü";
?>
und schau was Mozilla da jetzt sagt.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Korrekte Umlaute :-)
und als Kodierung: windows-1252
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Tja, jetzt müsste man nur noch eine passende Stelle zum Einbauen finden.

Vielleicht am Ende der common.inc.php ?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle