PHP verträgt sich nicht mehr mit myBB

Seit heute ist mein Forum voller Fehlermeldungen folgender Art:

Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /users/apil-juce/www/inc/class_parser.php on line 642

Dabei handelt es sich offensichtlich um einen PHP-Fehler.
Am Forum selbst wurde seit über eine Woche keine Veränderung gemacht (davor gab es ein Update der Forensoftware auf den neuesten Stand) und am PHP sowieso nicht, da ich da meine Finger von lasse.
Auf die Daten meines Forums hat außer mir niemand Zugriff, daher denken mein Forenteam und ich, dass bplaced.net eine Veränderung gemacht haben muss, weshalb das Forum voller preg_replace deprecated Fehler ist.

Irgendeine Erklärung vielleicht?

Mit freundlichen Grüßen
Cid Ironhide

Hallo

Ja, es gab heute Nacht Wartungsarbeiten bei denen PHP erneuert wurde.

Verwendest du die aktuellste Version deiner Software?

hi,

laut Aussagen vom Support dürfte es ab Version 1.6.10 keine Probleme mehr geben.

ciao

Ich habe vor 2 Wochen die neueste Version myBB 1.6.10 aufgespielt (gab keine Probleme dabei), dennoch erscheinen die Fehler sehr oft. Im Admin Control Panel steht, dass PHP 5.5 und MySQLi 5.5.27 installiert ist.

hi,

solange myBB da keinen Patch rausgibt besteht zumindest die Möglichkeit, den Fehler da zu unterdrücken.

Öffne bitte die Dir angezeigte Datei an der angezeigten Zeile und suche in diese den Ausdruck preg_replace - schreibe davor einfach ein @ hin, sodass da steht @preg_replace …dann abspeichern und wieder hochladen, dann sollte es klappen.

ciao

Funktioniert. Danke :slight_smile:

Bevor ich ein neues Thema diesbezüglich anfange, nehme ich gleich das vorhandene.

Ich habe mich zuerst an MyBB direkt gewendet um zu sehen was die dort meinen, nachdem ich die entsprechenden Themen hier gefunden habe.
Deren Ansatz ist die Fehlermeldung über die init.php zu deaktivieren, allerdings wird auch gemeint, dass dieser Fehler eigentlich garnicht auftreten soll und daher sollte ich mit dem Anbieter - also euch - nochmal rückfragen, damit das Problem von beiden Seiten behandelt werden kann.

Hier kann das Thema nachgelesen werden, welches ich in diesem Zusammenhang erstellt habe:
community.mybb.com/thread-141906 … pid1017059

hi,

also es ist schon ein “MyBB-issue”, da hier ein Parameter verwendet wird, der eigentlich schon länger nicht verwendet werden sollte. Früher, noch bis 5.4, hat PHP dies allerdings stillschweigend verarbeitet und meckert darüber erst seit 5.5.

siehe: de.php.net/preg_replace

Es sollte eigentlich reichen, meine genannte Änderung zu implementieren, die vom Support könnte allerdings auch klappen. Der Endeffekt wäre jedoch der genau gleiche - nur zum Unterschied, dass die Lösung vom Support dort Dir alle Fehler stillschweigend abstellt (es könnten ja mal wichtige, bedeutende angezeigt werden!), meine unterdrückt nur diejenigen, die hier von Relevanz sind und fasst andere nicht an.

ciao

Gleich mal so weitergeleitet und folgende Antwort erhalten:

Die Fehlermeldung dürfte garnicht angezeigt werden, da error_reporting() korrekt gesetzt wurde um genau diese deprecated Fehler-ausgabe zu vermeiden. Entweder wird die Einstellung zum Fehler anzeigen serverseitig erzwungen, oder es gibt einen generellen Fehler in PHP 5.5.0
Der Entwickler hat auf seiner Maschine mit PHP 5.5.0 version dieses Problem nicht.

Ich würde mich ja bei einen alternativen Freehost registrieren und das selber testen ob da auch diese Fehlermeldung erscheint, wenn ich wüsste ob einer von denen bereits genauso fleißig mit Aktualisierungen ist wie der gute Herr miro mit seinem bplaced :slight_smile: Manche Freehoster fahren sogar noch mit php 4.irgendwas.

Derweil spiele ich mal weiterhin den Kurier und überbringe die Nachrichten zwischen Berg und Prophet, wobei ich nicht sicher bin, wer eigentlich wer ist :smiley:

Ihr habt wohl PHP 5 aktualisiert? Ich habe seit heute das selbe Problem mit dem Forum forum.aschnabel.bplaced.net/

Und ja ich verwende die neuste Version von MyBB

Zu Beginn der Beiträge kommt…

[code]Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /users/aschnabel/www/forum/inc/class_parser.php on line 642

Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /users/aschnabel/www/forum/inc/class_parser.php on line 354

Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /users/aschnabel/www/forum/inc/class_parser.php on line 354

Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /users/aschnabel/www/forum/inc/class_parser.php on line 354

Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /users/aschnabel/www/forum/inc/class_parser.php on line 354

und so weiter…
[/code]

Leide rgibts noch kein Patch auf der MYBB-Seite

Hier wird auch über das Problem diskutiert: forum.mybboard.de/thread-28165.html

hi,

schau mal hia: forum.mybboard.de/thread-28165-p … #pid189016

ciao

Ich möchte an dieser Stelle dem Herrn Miro sowie ganz bplaced eine sehr große Lobeshymne singen.
Es ist alles andere als selbstverständlich, dass man sich in dieser rasanten Geschwindigkeit und Kompetenz um die Probleme der Benutzer kümmert. In diesem Fall inkludierte es sogar mal zum Forum von MyBB gehen, sich frisch registrieren und direkt mit der Quelle kommunizieren, und das noch mit einiges an Text. Das macht mal mit sicherheit nicht jeder Anbieter. Genausowenig ist das Angebot von bplaced schlecht, und ich habe in all den Jahren nach wie vor keinen - für MICH - besseren freehost gefunden. Selbst die „angeblich“ besseren die im MyBB forum in dieser Hinsicht verlinkt wurden (von deinen ich einen schon kannte) werden meines Erachtens von bplaced um Längen überboten.
Selbst internationale Freunde und Kollegen sagen, dass sie eine bessere Verbindung und schnelleres Seitenaufbauen rüber zu bplaced haben als zu vielen anderen, lokaleren Anbietern. Der Eifer der in die ständige Verbesserung und Aktualisierung der Server gesteckt wird, ist wundervoll :slight_smile: Ich fühl mich ja fast schon schlecht, dass ich bis dato noch nicht bplaced-pro verwende, aber meine Anforderungen an einen webhost sind auch bescheiden :red:

Jetzt nochmal zum Thema;
Lassen wir erstmal aussen vor, dass die Fehlermeldung nur deswegen auftaucht, weil MyBB (und offenbar viele andere Foren auch :smiley: ) einen veralteten Parameter verwendet.
Welche Lösung von den beiden ist denn jetzt die bessere und warum? Per @ die entsprechenden Zeilen rauskommentieren oder das hier in der init.php:

if(function_exists("unicode_decode")) { // Unicode extension introduced in 6.0 error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE ^ E_STRICT); } elseif(defined("E_DEPRECATED")) { // E_DEPRECATED introduced in 5.3 error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE); } else { error_reporting(E_ALL & ~E_NOTICE); }

Mit folgendem ersetzen;

if(function_exists("unicode_decode")) { // Unicode extension introduced in 6.0 error_reporting(E_ALL & ~(E_DEPRECATED|E_NOTICE|E_STRICT)); } elseif(defined("E_DEPRECATED")) { // E_DEPRECATED introduced in 5.3 error_reporting(E_ALL & ~(E_DEPRECATED|E_NOTICE)); } else { error_reporting(E_ALL & ~E_NOTICE); }

Letzteres scheint, wenn ich das im MyBB forum richtig verstanden habe, die serverseitig eingestellten Parameter auf lokaler Forum-ebene wieder zu richten sodass MyBB wieder in seiner gewohnten Umgebung arbeiten kann. Bei mir hats zumindest anstandslos funktioniert.

Instinktiv würde ich sagen, die zweitere Version ist besser, bin vom auskommentieren nicht so begeistert ^^° Das soll jetzt auch keine Abwertung von der Mühe des bplaced-Teams hier sein, das Problem zu lösen. Ich hab das ja auch nur vom MyBB forum rüberkopiert, und wenn das für besser als mit @ rauskommentieren befunden wird, dann können es ja andere bplaced Benutzer auch finden und verwenden :slight_smile:
Warum MyBB diesen veralteten Wert benutzt könnte ich mir daher erklären, dass sie ja bereits an Version 2.0 arbeiten bzw. 1.8 dazwischen einführen wollen als vorsichtige Eingewöhnung für 2.0 , also läge es nahe, dass die Programmierung in diesen Versionen sauberer sein wird und für 1.6 erstmal nur sicherheitslücken geschlossen werden die nach und nach auftreten.

Also nochmal vielen lieben Dank an bplaced - never change a winning team :slight_smile: