Beiträge: 6
Themen: 0
Registriert seit: 01.03.2021
Das ersetzen der beiden Expressions [[:<:]] und [[:>:]] durch /b, //b, ///b, ////b oder durch '/\b" (insgesammt 16 Vorkommen in der portal.php) führt dazu, das zwar kein Fehler mehr angezeigt wird, die Seite aber auch fast leer bleibt.
Was muss da genau hin?
Im Original sehen diestellen so aus:
PHP-Code: if($fetch_blocks = $proportal->get_list("SELECT b.*, u.* FROM ".TABLE_PREFIX."portal_blocks b LEFT JOIN ".TABLE_PREFIX."users u ON(u.proportalupdate = b.id) WHERE b.zone='4' AND b.enabled='1' AND b.visible REGEXP '[[:<:]]".$mybb->user['usergroup']."[[:>:]]' AND b.id NOT IN (".$box_id .") ORDER BY b.position"))
Beiträge: 2.267
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
(17.09.2021, 15:35)[ExiTuS] schrieb: Es kann doch so schön sein, wenn die Webhoster derartige Änderungen rechtzeitig ankündigen, um vorbereitet zu sein.
Trotzdem weiß man nie, was auf einen zukommt und wo es sich letztlich auswirkt.
Ich zumindest kann/könnte nur im Nachhinein Schadensbegrenzung betreiben.
Beiträge: 1.721
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
Da fühle ich mich bei meinen Hoster richtig gut aufgehoben. Ich kann von PHP 5.6.x bis PHP 8.0.x alle gegebenen PHP-Versionen einstellen. Ich habe im Account PHP auf 8.0.x eingestellt und in der .htaccess auf 7.4.x negiert. So kann ich nach und nach Testen und werde nicht einfach vor vollendete Tatsachen gestellt.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
Beiträge: 1.761
Themen: 22
Registriert seit: 18.02.2017
MyBB-Version: 1.8.*
@merano nicht /b //b ///b sondern \b \\b oder \\\b
oder die Lösung von Exitus von gestern verwenden; beide Optionen funktionieren bei mir
Beiträge: 6
Themen: 0
Registriert seit: 01.03.2021
(17.09.2021, 16:49)bv64 schrieb: sondern \b \\b oder \\\b
Die Option \b und \\b funktionieren nicht bei mir, aber mit \\\b funktioniert es.
Vielen Dank!
Beiträge: 837
Themen: 8
Registriert seit: 08.02.2016
MyBB-Version: 1.8.38
Nochmal der Verständlichkeit halber...
Gewollt ist hier der Reguläre Ausdruck "\b", also Backslash+b.
Das Backslash ist ein Meta/Steuerzeichen und muss daher maskiert werden; innerhalb eines SQL RegExp erfolgt eine Maskierung durch ein doppeltes Backslash "\\".
Das ergibt: "\\" + "\b" = "\\\b"
Beim Einsatz von MySQL würde ich dennoch die SQL-Funktion FIND_IN_SET() anstelle eines anfälligen REGEXP bevorzugen, weil es eben nicht solche Probleme auslöst.
[ExiTuS]
Beiträge: 1.721
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
(16.09.2021, 16:07)[ExiTuS] schrieb: Probiere:
Code: [...] AND FIND_IN_SET (".$mybb->user['usergroup'].",b.visible) AND [...]
Es wird über die portal.php diskutiert. Nett wenn Einige schreiben "Der Befehl funktioniert". Bin allem Anschein nach etwas begriffsstutzig.
Wie und wo genau soll der vorstehende SQL-Befehl eingebunden werden? Mit den [...] kann ich leider nichts anfangen.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
Beiträge: 1.761
Themen: 22
Registriert seit: 18.02.2017
MyBB-Version: 1.8.*
18.09.2021, 09:50
(Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2021, 09:51 von bv64.)
na dann machen wir es mal ordentlich:
Die Änderungen sind nur erforderlich, wenn MySQL 8 verwendet wird!
Original in der portal.php des ProPortal:
PHP-Code: if($fetch_blocks = $proportal->get_list("SELECT b.*, u.* FROM ".TABLE_PREFIX."portal_blocks b LEFT JOIN ".TABLE_PREFIX."users u ON(u.proportalupdate = b.id) WHERE b.zone='4' AND b.enabled='1' AND b.visible REGEXP '[[:<:]]".$mybb->user['usergroup']."[[:>:]]' AND b.id NOT IN (".$box_id .") ORDER BY b.position"))
Lösung 1 mit Erhalt der REGEXP
PHP-Code: if($fetch_blocks = $proportal->get_list("SELECT b.*, u.* FROM ".TABLE_PREFIX."portal_blocks b LEFT JOIN ".TABLE_PREFIX."users u ON(u.proportalupdate = b.id) WHERE b.zone='4' AND b.enabled='1' AND b.visible REGEXP '\\\b".$mybb->user['usergroup']."\\\b' AND b.id NOT IN (".$box_id .") ORDER BY b.position"))
Lösung 2 mit FIND_IN_SET:
PHP-Code: if($fetch_blocks = $proportal->get_list("SELECT b.*, u.* FROM ".TABLE_PREFIX."portal_blocks b LEFT JOIN ".TABLE_PREFIX."users u ON(u.proportalupdate = b.id) WHERE b.zone='4' AND b.enabled='1' AND b.visible AND FIND_IN_SET (".$mybb->user['usergroup'].",b.visible) AND b.id NOT IN (".$box_id .") ORDER BY b.position"))
Die Originalfundstelle findet sich 8 mal in der portal.php und muss deshalb auch 8 mal geändert werden!
In der inc/plugins/proportalupdate.php
Original:
PHP-Code: $updateboxen = $db->simple_select("portal_blocks", "id,file,visible,title,userusing,zone", "enabled = '1' AND visible REGEXP '[[:<:]]".$mybb->user['usergroup']."[[:>:]]' AND userusing='1' ORDER BY zone ASC, position ASC");
Lösung 1 mit Erhalt von REGEXP
PHP-Code: $updateboxen = $db->simple_select("portal_blocks", "id,file,visible,title,userusing,zone", "enabled = '1' AND visible REGEXP '\\\b".$mybb->user['usergroup']."\\\b' AND userusing='1' ORDER BY zone ASC, position ASC");
Lösung 2 mit FIND_IN_SET
PHP-Code: $updateboxen = $db->simple_select("portal_blocks", "id,file,visible,title,userusing,zone", "enabled = '1' AND FIND_IN_SET (".$mybb->user['usergroup'].",visible) AND userusing='1' ORDER BY zone ASC, position ASC");
Beiträge: 226
Themen: 10
Registriert seit: 06.03.2020
MyBB-Version: 1.8.27
@bv64 , DANKE jetzt ist es auch deppensicher für mich zu verstehen :-)
Beiträge: 1.721
Themen: 177
Registriert seit: 08.02.2018
MyBB-Version: 1.8.37
18.09.2021, 15:32
(Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2021, 15:39 von Gerti.)
Jetzt sind Interpretationsfehler zu Deinen Ausführungen ausgeschlossen worden. Sollte man möglichst immer so ausführen, spart Rückfragen und Zeit
Ich sage besten Dank für Deine Engagement.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
|