Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 17. Februar 2015 23:01

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Aus gegebenem Anlass (einer meiner Kunden wink) möchte ich kurz auf dieses Thema hinweisen.

Grundsätzlich harmoniert CMSMS in der aktuellen Version prima mit PHP 5.5. Jedoch wird in CMSMS stellenweise noch mittlerweile veraltete Software aus anderen Open-Source-Projekten eingesetzt, was unter PHP 5.5 zu folgender Fehlermeldung (sofern nicht unterdrückt - siehe hier Pkt. 6) führen kann:

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead …

"deprecated" heisst so viel wie veraltet bzw. nicht mehr länger unterstützt, und ist häufig die Vorstufe zu "in der nächsten PHP-Version nicht mehr vorhanden".

Auslöser dieser Fehlermeldung sind können unter anderem die Dateien html_entity_decode_php4.php und html_entity_decode_utf8.php sein. Darin wird die PHP-Funktion preg_replace() in Verbindung mit dem Parameter /e aufgerufen.

Der Parameter /e steht hier für eval; das heisst, dass ein BELIEBIGER (!) PHP-Befehl (so im zu ersetzenden Teil vorhanden) zunächst ausgeführt wird, bevor die replace Funktion zur Anwendung kommt (ja, den Sicherheitsfreaks unter euch dürften sich dabei tendenziell die Nackenhaare aufstellen).

Ich habe jetzt nicht 100%ig im Blick, an welchen Stellen die Funktionen aus diesen Dateien eingesetzt werden, jedoch ist dieses Sicherheitsrisiko der Grund dafür, dass der Parameter /e für preg_replace() ab PHP 5.5 auf deprecated gesetzt ist. Und wie der Fehlermeldung unschwer zu entnehmen, soll diese Funktion durch preg_replace_callback() ersetzt werden.

Die Lösung dieses Problems ist relativ einfach - auf die Version 1.11.12 aktualisieren wink.

Beitrag geändert von cyberman (21. Februar 2015 18:36)


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#2 17. Februar 2015 23:04

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

cyberman schrieb:

Ich habe jetzt nicht 100%ig im Blick, an welchen Stellen die Funktionen aus diesen Dateien eingesetzt werden

Auslöser dieses Fehlers war bei meinem Kunden übrigens das Modul "CGExtensions" ...


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#3 17. Februar 2015 08:30

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.058

Re:

Sind noch eine ganze Menge mehr Module, die diese Funktionen nutzen.
(Search, News, FrontEndUsers, Gallery ...)

Offline

#4 21. Februar 2015 18:46

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Danke für den Hinweis, hab den Primär-Post angepasst.

Und falls ihr mal auf dieses Problem stoßt ... für eine Anpassung ist kein großer Voodoo erforderlich wink.

Hier mal ein Beispiel für die Transformation des Codes:

Vorher:

	$return_text = preg_replace('~&#x([0-9a-f]+);~ei', 
					     'code_to_utf8(hexdec("\\1"))', 
					     $return_text);
	$return_text = preg_replace('~&#([0-9]+);~e', 
					     'code_to_utf8("\\1")', 
					     $return_text);

Nachher:

	$return_text = preg_replace_callback('~&#x([0-9a-f]+);~i',
					     function($matches) {
					       __code_to_utf8($matches[1]);
					     }, $return_text);
	$return_text = preg_replace_callback('~&#([0-9]+);~',
					     function($matches) {
					       __code_to_utf8($matches[1]);
					     }, $return_text);

PS: Das ist die Änderung in der 1.11.13, also nicht verwirren lassen. Die Funktion code_to_utf8 ist hier im Beispiel zwar in __code_to_utf8 umbenannt worden, aber für eine erfolgreiche Anpassung keine zwingende Voraussetzung.

Beitrag geändert von cyberman (22. September 2015 19:53)


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

Fußzeile des Forums

Powered by FluxBB