MyBB.de Forum

Normale Version: ProPortal 2.6.2
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
was bewirkt dieser Teil in der Abfrage überhaupt:

REGEXP '[[:<:]]".$mybb->user['usergroup']."[[:>:]]'

habe ihn gerade mal testweise an allen Stellen raus genommen und das Portal ist da (logisch)

@Exitus
Im Datenbankfeld visible der Tabelle xxxx_portal_blocks stehen die Nummern der Usergruppen, die diesen Block sehen dürfen, durch Komma getrennt, also z.B. 2,3,4,5,6,7,9,13,15,25

@Schnapsnase
Zitat:das z.B. dies -> [[:<:]] durch \b ersetzt werden muss
warum? hast du da mal eine Quelle für mich?
Es kann ja nicht so aufwändig sein, dass mal zu testen.
Ich habe mir das ja auch nicht aus den Fingern gesogen. Wink 
Siehe hier
danke für den Link, Schnapsnase Wink
Portal ist nach Änderung da und herrlich leer, d.h. es werden gar keine Blocks mehr angezeigt; sehr beruhigende Wirkung
(16.09.2021, 15:46)bv64 schrieb: [ -> ]sehr beruhigende Wirkung

Big Grin Big Grin 
Das du immer so schnell aufgeben musst... Rolleyes Wink 
Na dann warten wir doch mal, ob noch wer etwas dazu beitragen kann. Wink
Für das Prinzip, was hier mittels RegExp ermöglichen werden soll, gibt es eine eigens dafür vorgesehene SQL-Funktion: FIND_IN_SET()
Probiere:
Code:
[...] AND FIND_IN_SET (".$mybb->user['usergroup'].",b.visible) AND [...]

[ETS]
mein lieber Herr Schnapsnase, ich pflege überhaupt nicht schnell aufzugeben, ich will es nur verstehen, was ich mache. Wäre ich ein Aufgeber, wäre ich schon tot Wink

so, nun funktioniert es, aus
REGEXP '[[:<:]]".$mybb->user['usergroup']."[[:>:]]'
wurde
REGEXP '\\\b".$mybb->user['usergroup']."\\\b'

und das 8 mal in der portal.php und einmal im zugehörigen Plugin inc/plugins/proportalupdate

mal schauen, ob es für die unterschiedlichen Usergruppen auch passt

edit: die Lösung von Exitus funktioniert ebenfalls!

Vielen Dank euch beiden für die Hilfestellung
(16.09.2021, 16:08)bv64 schrieb: [ -> ]so, nun funktioniert es,

Sag ich doch... Mal etwas mit den Backslashes spielen. Wink
Ich kann es ja leider nicht selbst testen.
...und meine kleinen Spitzen auch nicht immer so ernst nehmen... Wink
tu ich nicht Wink dafür kenn ich dich jetzt lang genug; aber meine auch nicht, bin für meinen bösen Zynismus bekannt
Ich habe (vermutlich) das selbe Problem.

Um den Fehler angezeigt zu bekommen musste ich laut Provider in der portal.php folgendes hinzufügen:

PHP-Code:
ini_set('display_errors'1);
error_reporting(E_ALL); 
Hier der genaue Text der dann angezeigt wird.


Code:
Proportal Fehler:

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
    3685 - Illegal argument to a regular expression.
Query:
    SELECT b.*, u.* FROM mybb_portal_blocks b LEFT JOIN mybb_users u ON(u.proportalupdate = b.id) WHERE b.zone='4' AND b.enabled='1' AND b.visible REGEXP '[[:<:]]4[[:>:]]' AND b.id NOT IN (0) ORDER BY b.position

Da ich selbst nichts geändert hatte, scheint es durch eine serverseitige Änderung verursacht.
Wie es scheint ist dieser Fehler tatsächlich das Resultat vom Wechsel zu MySQL 8.
Der Fehler ist hier seit gestern diskutiert und behoben worden. Das wird auch bei dir die Lösung sein.

Es kann doch so schön sein, wenn die Webhoster derartige Änderungen rechtzeitig ankündigen, um vorbereitet zu sein. Dasselbe Theater gab es auch schon unzählige Male bei der spontann Umstellung zu PHP7/8.

Kleiner Hinweis. Deine manuelle Änderung des PHP Log Level (E_ALL) setzt die serverseitge Default-Einstellung außer Kraft. Für einen momentanen Test super, da E_ALL wirklich jeden kleinsten Schluckauf protokolliert. Es wäre vielleicht ratsam, diese Zeilen später wieder zu entfernen.

[ETS]