MyBB.de Forum

Normale Version: Fehlerhafte gid-Nummerierung von Plugins in der mybb_settinggroups
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich hoffe, ich bin hier richtig mit meinem Problem. Ich kann nämlich nicht einschätzen, ob das nicht vielleicht doch ein Bug meines MyBBs ist und daher ins andere Unterforum müsste. Entschuldigung meinerseits daher.

URL zum Forum: https://eternal-horizon.de
MyBB-Version: 1.8.25
PHP-Version: 7.1
MySQL-Version: 5

TL;DR: Wenn ich ein Plugin installiere, wird ihm in der DB-Tabelle mybb_settinggroups immer die gid 0 vergeben. Installiere ich ein weiteres, bekomme ich die Fehlermeldung, dass die gid=0 bereits vergeben ist.

Ausführliche Version:
Am 21.12 habe ich das Forum von Version 1.8.21 auf 1.8.25 geupdated. Das Update lief problemlos, es gab keinerlei Schwierigkeiten oder Fehlermeldungen. Daraufhin konnte ich ebenso ohne Probleme zwei weitere Plugins installieren und zwar MyAlerts und OUGC Awards.
Vor über einem Monat wollte ich das Away Member List Plugin installieren, habe allerdings bei der Installation folgende Fehlermeldung bekommen
Zitat:1366 - Incorrect integer value: 'NULL' for column 'gid' at row 1
Auch bei anderen Plugins, die ich installieren wollte (Export User (GDPR/DSGVO), Inplayzitate, Gossip), bekam ich die gleiche Fehlermeldung.

Wie sich herausstellte war dafür der strict-mode von MySQL verantwortlich, den ich mit Hilfe des Supports unseres Webhosters ausstellen konnte, indem folgender Code in der db_mysqli.php in Zeile 247 eingefügt wurde (weiß nicht, ob das für mein Problem wichtig ist, aber besser mehr Infos, als zu wenig)
PHP-Code:
if($this->$link)
$this->$link->query("set sql_mode = 'NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';"); 

Das Installieren funktioniert nun wieder und die Fehlermeldung 1366 kommt nicht mehr. Dafür tritt nun ein neues Problem auf:
Jedes Plugin, das ich nun installieren will, bekommt in der mybb_settinggroups Tabelle die gid 0.
[attachment=12987]
Das letzte erfolgreich installierte Plugin OUGC Awards hatte die Nummer 61. Zum testen, ob es an den neuen Plugins liegt, habe ich OUGC Awards deinstalliert und neu installiert. Und siehe da: es hat auch die gid 0 bekommen. Ein weiteres Plugin kann ich nicht mehr installieren, denn dann bekomme ich die Fehlermeldung, dass es bereits einen Eintrag mit der gid 0 in der Tabelle gibt - logisch, jede gid darf ja nur einmal vergeben werden. Ich muss das letzte Plugin mit der gid 0 also immer löschen, wenn ich ein anderes installieren will.
Ein weiteres Phänomen ist: möchte ich die Einstellung des Plugins mit der gid 0 ändern, leitet es mich auf eine Seite weiter, auf der ich alle möglichen Einstellungen des Forums (inklusive der der Plugins) ändern kann und nicht nur des entsprechenden Plugins.
[attachment=12988]
Ändere ich in der DB die gid manuell von 0 auf die eigentliche nächste Fortlaufende Zahl, zeigt es mit den der Übersicht der Foreneinstellung an, dass das Plugin 0 Einstellungsmöglichkeiten hat.
[attachment=12989][attachment=12990]
Klicke ich darauf, bekomme ich die Meldung, dass keine Einstellungen gefunden wurden, die zu dieser Eingabe passen.
[attachment=12991]

Ich bin ziemlich ratlos und kann noch nicht einmal eine Einschätzung geben, was die Ursache für dieses Problem sein könnte. Erst dachte ich daran, dass es vielleicht grundsätzlich am strict-mode läge, aber der ist jetzt deaktiviert und es funktioniert immernoch nicht. Dann dachte ich, dass vielleicht doch etwas beim Upgraden des Forums auf die neueste Version schief gelaufen sein könnte. Aber nach dem Upgrade konnte ich immerhin zwei Plugins erfolgreich installieren. Jetzt aber kann ich eines davon wiederum nicht mehr erfolgreich installieren.
Das einzige, was ich in dieser Zeit am Forum noch geändert habe, war den Deafultdark Editor für ein dunkles Design farblich anzupassen und auf der Startseite für Gäste die Aktivität in nicht zugänglichen Unterforen sichtbar zu machen (nach dieser Anleitung).

Ich hoffe sehr, dass mir jemand weiterhelfen kann und dass die Lösung so einfach ist, dass ich mir danach ziemlich doof vorkomme. Denn eine komplette Neuinstallation des Forums wäre für mich persönlich eine kleine Katastrophe, da wir doch eine recht große Userschaft haben und ich Angst habe, dass vieles verloren gehen könnte. Leider sind viele Plugins für uns essentiell, besonders die für den Datenschutz unserer User.

Vielen Dank im Voraus und liebe Grüße
Hier wie die settinggroup Tabelle angelegt sein sollte:

https://github.com/mybb/mybb/blob/66dca7...#L734-L743

Schau mal ob das bei dir übereinstimmt und ob der auto increment Zähler einen sinnvollen Wert hat (sonst von Hand auf max(gid)+1 setzen)
Das war die Ursache! Bei gid war kein Haken bei auto_increment drin. Den habe ich rein gemacht und jetzt funktioniert alles so wie es soll.

Ein ganz großes Dankeschön! du hast mir den Tag gerettet Big Grin

P.S.: und ja, ich komme mir doof vor. Aber das ist mir allemal lieber als das gesamte Forum neu aufsetzen zu müssen, weil irgendwo irgendwas schief gelaufen ist :')