WBCE CMS – Way Better Content Editing.
You are not logged in.
Eine weitere Instanz habe ich nun auch auf WBCE 1.5.4 inkl. Modulen und PHP 8.1 durchgeführt.
Diesmal habe ich im Errorlog folgende Meldungen erhalten.
[== PHP ==]
2022-12-04T10:24:53+00:00 [Visitor Request] ./pages/de/start/lagebeschreibung.php
2022-12-04T10:24:53+00:00 [Exception] There was an unknown exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alle"" AND `active` = 1' at line 1 in line (302) of /framework/class.database.php
2022-12-04T10:25:37+00:00 [Visitor Request] ./pages/de/meldesystem.php
2022-12-04T10:25:37+00:00 [Exception] There was an unknown exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alle"" AND `active` = 1' at line 1 in line (302) of /framework/class.database.php
2022-12-04T10:25:59+00:00 [Visitor Request] ./pages/de/abfallentsorgung.php
2022-12-04T10:25:59+00:00 [Exception] There was an unknown exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alle"" AND `active` = 1' at line 1 in line (302) of /framework/class.database.php
2022-12-04T10:26:35+00:00 [Visitor Request]./pages/de/instandhaltung.php
2022-12-04T10:26:35+00:00 [Exception] There was an unknown exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alle"" AND `active` = 1' at line 1 in line (302) of /framework/class.database.php
In den Abschnitten ist das Modul Dynamic Table installiert.
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Offline
Folgende Meldung bei einer Instanz mit WBCE 1.5.4 und PHP 8.1.
[== PHP ==]
2022-12-04T10:24:53+00:00 [Visitor Request] ./pages/de/start/lagebeschreibung.php
2022-12-04T10:24:53+00:00 [Exception] There was an unknown exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alle"" AND `active` = 1' at line 1 in line (302) of /framework/class.database.php
2022-12-04T10:25:37+00:00 [Visitor Request] ./pages/de/meldesystem.php
2022-12-04T10:25:37+00:00 [Exception] There was an unknown exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alle"" AND `active` = 1' at line 1 in line (302) of /framework/class.database.php
2022-12-04T10:25:59+00:00 [Visitor Request] ./pages/de/abfallentsorgung.php
2022-12-04T10:25:59+00:00 [Exception] There was an unknown exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alle"" AND `active` = 1' at line 1 in line (302) of /framework/class.database.php
2022-12-04T10:26:35+00:00 [Visitor Request]./pages/de/instandhaltung.php
2022-12-04T10:26:35+00:00 [Exception] There was an unknown exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alle"" AND `active` = 1' at line 1 in line (302) of /framework/class.database.php
In den Abschnitten ist das Modul Dynamic Table installiert.
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Offline
Die doppelten Anführungszeichen 'Alle"" sind sicherlich das Problem, hat aber "eigentlich" nichts mit der PHP-Version zu tun. Könnte aber sein, dass die älteren Versionen das unterdrückt haben. Leider kann man nicht erkennen, wo die Quelle des Fehlers liegt, da class.database.php ja nur der "Abnehmer" des SQL-Statements ist. Die meisten Module dürften das Problem haben, dass SQL-Statements nicht korrekt gequotet werden. Ist denn erkennbar, woher das "Alle" kommt? Wenn ja, gibt es an der Stelle Quotes?
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
Ich glaube nicht, dass das fehlerhafte SQL-Statement von dem Modul Dynamic Table kommt. Das Modul hat nur eine einzige Tabelle und in dieser gibt es keine Spalte "active" wie im fehlerhaften Statement.
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
Ist da eventuell ein SectionPicker-Aufruf (Modul oder "altes" Droplet)?
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Ist da eventuell ein SectionPicker-Aufruf (Modul oder "altes" Droplet)?
Seite Meldesystem:
- Hier ist in den Abschnitten WYSIWYG mit mpform und Dyn. Table.
Wobei im WYSIWYG nur ein Droplet mit:
[[getfielddata?table=2&field=submitted_when,14,7,16&maxnumber=1&maxdays=30&type=table]]
aufgerufen wird.
Bei den anderen Seiten kommt nur WYSIWYG, csv2Table und Dyn. Table zum Einsatz ohne Droplet und SectionPicker
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Offline
Hm, also das muss schon mit irgend einem Droplet zu tun haben. Der einzig plausible Fall, wo in einer DB-Afrage dieses AND `active` = 1 vorkommt, ist in der /modules/droplets/droplets.php
e` FROM `'.TABLE_PREFIX.'mod_droplets` WHERE `name` LIKE "'.$droplet_name.'" AND `active` = 1';
Was jetzt aber nicht heißt, daran irgendwas zu ändern.
Man müsste jetzt wie von webbird schon geschrieben wissen, wo dieses Alle" herkommt, das scheint ja irgendwie das Problem zu sein.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Also in Ordner von dynamic_table finde ich in der view.php in Zeile 91 folgendes:
[== PHP ==]
lengthMenu: [[100, 50, 25, 10, -1], [100, 50, 25, 10, "Alle"]],
Hier ist die Bezeichnung "Alle" zu finden
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Offline
Na, das ist doch schon mal ein Ansatz.
Versuch mal, ob es was bringt, das "Alle" in 'Alle' oder \"Alle\" zu ändern.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Na, das ist doch schon mal ein Ansatz.
Versuch mal, ob es was bringt, das "Alle" in 'Alle' oder \"Alle\" zu ändern.
Man kann zwar 'Alle' oder \"Alle\" ändern, bringt aber nur teilweise Erfolg.
Die Tabellen werden wieder angezeigt, jedoch fehlen jetzt die entsprechenden Werkzeuge im FE
Last edited by Slugger (06.12.2022 11:44:42)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Offline
Hm, bei meiner gerade aus dem Addons Repo geladenen view.php von DynTable (0.5.8) ist Zeile 91 eine Leerzeile. Der obige Code sieht nach Javascript aus, ich wüßte nicht, wie der in einem SQL-Statement landen sollte...
Last edited by webbird (06.12.2022 16:40:12)
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
Hm, also das muss schon mit irgend einem Droplet zu tun haben. Der einzig plausible Fall, wo in einer DB-Afrage dieses AND `active` = 1 vorkommt, ist in der /modules/droplets/droplets.php.
Im framework-Ordner gibt es noch zwei Stellen, beide im Zusammenhang mit Benutzern.
class.login.php
193: $sSql = "SELECT * FROM `{TP}users` WHERE `username`='%s' AND `active` = 1";
class.wb.php
97: $sDbPasswordHash = $database->get_one('SELECT `password` FROM `{TP}users` WHERE `user_id` = ' . $iUserID . ' AND `active` = 1');
107: $database->query("UPDATE `{TP}users` SET `password` = '$sNewHash' WHERE `user_id` = " . $iUserID . ' AND `active` = 1');
In den Fällen fehlt allerdings das " vor dem AND.
Last edited by webbird (06.12.2022 16:48:16)
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
Danke für deinen Hinweis, werde ich prüfen.
Bin zur Zeit unterwegs.
Ich melde mich dann.
Last edited by Slugger (06.12.2022 16:47:35)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Offline
Das "Alle" wurde hier beschrieben
https://forum.wbce.org/viewtopic.php?pid=34110#p34110
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
So,
ich kann den Fehler reproduzieren.
Es liegt tatsächlich an dem "Alle" in lengthMenu.
Es ist mir aber absolut rätselhaft wie das in einer DB-Query landen kann.
Nach meinem Verständnis ist das doch eine reine Javascript Sache die dem DataTables-Script sagt wie viele Einträge pro Seite darzustellen sind, da werden doch keine Daten aus der Datenbank nachgeladen ?!?!?
Schnelle Abhilfe:
die lengthMenu Zeile so abändern:
lengthMenu: [100, 50, 25, 10, -1],
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
Das "Alle" wurde hier beschrieben
https://forum.wbce.org/viewtopic.php?pid=34110#p34110
Jetzt erinnere ich mich, von da habe ich den Code-Abschnitt her und wie beschrieben eingetragen.
Ich habe das jetzt so angepasst wie im Abschnitt von bernd vorgeschlagen.
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Offline