WBCE CMS – Way Better Content Editing.
Du bist nicht angemeldet.
WBCE CMS 1.6.9 verfügbar / available - wichtiges Sicherheitsudate / important security update
Hallo Zusammen ,
ich versuche gerade mit Bookings V2.44 einen Hüttenbelegungsplan zu erstellen
ich habe 3
eingetragen
Ich bekomme im Frontend die Fehlermeldung:
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 '» ORDER BY `level` ASC, `position` ASC' at line 1
Kennt jemand das Problem?
WBCE V1.6.1
PHP 8.0.30
MySQL 5.7
Vielen Dank falls jemand was weiss smile
Beitrag geändert von morri2 (13.11.2023 18:43:39)
Offline
Eigenartig, ein SQL-Query mit "level" kommt nirgends im Code des Moduls vor.
Tritt der Fehler nur auf der Seite mit dem Bookings-Modul auf?
Steht etwas im Errorlog?
Online
Irgendwie mag mir die Fehlermeldung nicht so recht zu "Bookings" passen.
Sind auf der Seite noch andere Abschnitte?
Edit:
Soweit ich das sehe, kommt das ORDER BY `level` ASC, `position` ASC nur einmal vor
in der include.php von show_menu2
Dann müßte der Fehler aber eigentlich auch auf anderen Seiten auftreten ...
Beitrag geändert von bernd (13.11.2023 19:06:36)
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
Eigenartig, ein SQL-Query mit "level" kommt nirgends im Code des Moduls vor.
Tritt der Fehler nur auf der Seite mit dem Bookings-Modul auf?
Steht etwas im Errorlog?
Hallo Florian,
vielen Dank für Deine Hilfe ....
aber ich bin jetzt schon viel schlauer 
Die Fehlermeldung triit nur auf wenn das Backend im Browser geöffnet ist und man sich zugleich das Frontend anschaut.
öffne ich den Link bei gschlossenem Frontend . sieht alles gut aus
Öffne ich ich das Backend mit z.B. Mozilla und das Frontend mit Chrome tritt das Problem ebenfalls nicht auf..
Mein Fehler war offensichtlich dass ich versucht habe mir das Aussehen durch Klick auf den "Ansicht (Frontend)"-Button anzschauen
Viele Grüße
und nochmals Danke!
Wolfgang
Offline
Ähm, schön, aber das sollte trotzdem nicht passieren - wie sind denn die Zugriffsrechte für die Seite bzw. das Bookings-Modul konfiguriert, und bist Du mit einem Administratory-Account angemeldet, oder mit einem Nutzy-Account mit eingeschränkten Zugriffsrechten?
Online
Irgendwie mag mir die Fehlermeldung nicht so recht zu "Bookings" passen.
Sind auf der Seite noch andere Abschnitte?Edit:
Soweit ich das sehe, kommt das ORDER BY `level` ASC, `position` ASC nur einmal vor
in der include.php von show_menu2
Dann müßte der Fehler aber eigentlich auch auf anderen Seiten auftreten ...
Hallo Bernd ,
auch Dir schon mal vielen Dank für Deine Mühe.
Offenbar macht es einen Unterschied ob man versucht die Bookingsseite Backend über den Button "Ansicht (frontend) " anzuschauen oder in einer separaten Browserumgebung.
Ob das so in Ornung ist weiss iich natürlich nicht...
Aber zumindest gibt es einen Workarround
Viele Grüße
Wolfgang
Offline
Ähm, schön, aber das sollte trotzdem nicht passieren - wie sind denn die Zugriffsrechte für die Seite bzw. das Bookings-Modul konfiguriert, und bist Du mit einem Administratory-Account angemeldet, oder mit einem Nutzy-Account mit eingeschränkten Zugriffsrechten?
Hallo Florian,
soweit ich das sehen kann, bin ich am Backend mit einem Admin-Account angemeldet..
ich werde aber mal versuch mich las editor anzumelden..
Das habe ich soeben probiert... auch hier kommt die Fehlermeldung
Viele Grüße
Wolfgang
Offline
Welches Template verwendest Du? Tritt der Fehler auch auf, wenn Du auf ein (unverändertes) Standardtemplate umstellst, z.B. WBCEZon oder WBCETik?
Online
Welches Template verwendest Du? Tritt der Fehler auch auf, wenn Du auf ein (unverändertes) Standardtemplate umstellst, z.B. WBCEZon oder WBCETik?
Hallo Florian,
Bei dieser Seite steht bei Template "Standardeinstellung", ich vermute dass das bei mir das template "alpinerskiclub1" ist, das von unserer Webdesignerin vor Jahren erstellt wurde .
Ändere ich das Template dieser Seite auf z.B. WBCE Hortal tritt die Fehlermeldung nicht auf
Wolfgang
Offline
Alles sehr seltsam. Vielleicht wäre es sinnvoll, wenn ich mir das mal direkt selbst anschaue. Wenn Du willst, kannst Du mir Admin-Zugangsdaten per PM oder an support@wbce.org zukommen lassen.
Online
Alles sehr seltsam. Vielleicht wäre es sinnvoll, wenn ich mir das mal direkt selbst anschaue. Wenn Du willst, kannst Du mir Admin-Zugangsdaten per PM oder an support@wbce.org zukommen lassen.
Hallo Florian,
werde ich gleich so machen, habe nur noc ein Backup gezogen
Wolfgang
Offline
Strange. Sagt Bescheid, falls ich helfen kann. Wäre interessant, das komplette SQL-Statement zu sehen. Ich hatte doch mal an der DB-Klasse rumgeschraubt, damit die im Fehlerfall das komplette SQL ins Log schreibt... Ich weiß nur nicht, ob das in irgendeine Version eingeflossen ist.
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Ich hatte zwischenzeitlich Zugriff auf die Seite. Das kommt tatsächlich aus dem Query von show_menu2/include.php, Zeile 280 - orginal mit dem » drin.
Mööööglicherweise spielt eine Rolle, dass auf der Website die Meldung "Die Integritätsprüfung ist fehlgeschlagen" angezeigt wird, da also Reste eines gewissen anderen CMS herumgeistern.
Online
Im Repo ist Zeile 280 irgendwas anderes. Ist "Deine" Zeile 280 rum sowas hier?
[== PHP ==]
$sSql = 'SELECT '.$fields.' FROM `{TP}pages` '
. 'WHERE '.$wb->extra_where_sql.' '.$menuLimitSql.' '
. 'ORDER BY `level` ASC, `position` ASC';Wenn ja, vermute ich, dass $wb->extra_where_sql UND $menuLimitSql beide leer sind. Dann ist das Ergebnis nämlich ein SQL-Statement
SELECT ... FROM {TP}pages WHERE ORDER BY...
Und das ist dann in der Tat ein ungültiges Statement.
Beitrag geändert von webbird (14.11.2023 14:10:22)
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Im Repo ist Zeile 280 irgendwas anderes. Ist "Deine" Zeile 280 rum sowas hier?
[== PHP ==] $sSql = 'SELECT '.$fields.' FROM `{TP}pages` ' . 'WHERE '.$wb->extra_where_sql.' '.$menuLimitSql.' ' . 'ORDER BY `level` ASC, `position` ASC';Wenn ja, vermute ich, dass $wb->extra_where_sql UND $menuLimitSql beide leer sind. Dann ist das Ergebnis nämlich ein SQL-Statement
SELECT ... FROM {TP}pages WHERE ORDER BY...
Und das ist dann in der Tat ein ungültiges Statement.
bei mir steht ab Zeile 276 in show_menu2/include.php folgendes:
ab Zeile 276:
// mark all elements that are siblings of any element on the current path
foreach ($rgCurrParents as $x) {
if (array_key_exists($x, $rgParent)) {
foreach (array_keys($rgParent[$x]) as $y) {
$mark =& $rgParent[$x][$y];
$mark['sm2_path_sibling'] = true;
unset($mark);
}
}
}
Beitrag geändert von morri2 (14.11.2023 14:24:31)
Offline
Ich glaube das ist ein Zahlendreher und Florian meinte Zeile 208.
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Ich glaube das ist ein Zahlendreher und Florian meinte Zeile 208.
Ok...
Ab Zeile 200.. 208
// we request all matching rows from the database for the menu that we
// are about to create it is cheaper for us to get everything we need
// from the database once and create the menu from memory then make
// multiple calls to the database.
$sSql = 'SELECT '.$fields.' FROM `{TP}pages` '
. 'WHERE '.$wb->extra_where_sql.' '.$menuLimitSql.' '
. 'ORDER BY `level` ASC, `position` ASC';
$sSql = str_replace('hidden', 'IGNOREME', $sSql); // we want the hidden pages
$oRowset = $database->query($sSql);
& Spenden ? ich werde das mit unserem Schatzmeister besprechen 
Offline
Florian hat mir das SQL aus dem Log geschickt. Da steht
`menu`=»
Da "»" eine Zeichenkette ist, müßte sie mit Anführungszeichen umgeben sein, ist sie aber nicht. Und sie ist es nicht, weil da eigentlich eine Zahl hingehört. Vielleicht schaust Du mal im Template, wie der show_menu2() Aufruf aussieht, insbesondere ob der Wert an erster Stelle dort irgendwie "berechnet" wird oder ob da "hartcodiert" eine Zahl steht. Also
show_menu2(0,...)
vs
show_menu2($whatever,...)
Als "quick fix" kann man in der include.php von SM2 die Zeile 172 ändern:
Original:
$menuLimitSql = ' AND `menu`='.$aMenu;
Ändern in:
$menuLimitSql = ' AND `menu`='.intval($aMenu);
Bei einem ungültigen Wert - wie dem » - kommt bei intval() an der Stelle 0 raus, also das Menü mit der ID 0. Dann ist das SQL-Statement zumindest nicht mehr ungültig, wenn auch der eigentliche Auslöser des Problems dadurch nicht behoben ist.
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Noch eine "verdächtige" Stelle in der include.php:
https://github.com/WBCE/WBCE_CMS/blob/b … e.php#L109
Da wird $aMenu (der erste Parameter im show_menu2() Aufruf) durch $wb->page['menu'] ersetzt, sofern der Wert 0 ist. Warum da jetzt "»" drin stehen sollte, wenn die Seite via Backend aufgerufen wird, kann ich zwar nicht erklären, aber es könnte trotzdem von dort her kommen. Auch da könnte man fixen:
Statt
$aMenu = isset($wb->page['menu']) ? $wb->page['menu'] : 1;
->
$aMenu = (isset($wb->page['menu']) && is_int($wb->page['menu'])) ? $wb->page['menu'] : 1;
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Hallo webbird, Hallo Florian,
Ich hab das jetzt bei mir getestet und für gut befunden..
Ergebnis:
läuft jetzt mit und ohne Backend , die Fehlermeldung ist weg
Zudem erschein in der Backend-Ansicht nun die möglichkeit direkt die Termine zu editieren
perfekt
Ihr seid unschlagbar!!
Danke euch
Wolfgang
Offline
Wobei mich ja trotzdem interessieren würde, wo dieses "»" her kommt... 
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Wobei mich ja trotzdem interessieren würde, wo dieses "»" her kommt...
Von mir jedenfalls nicht.. dazu bin ich hier viel zu unbedarft und Ahnungslos

Offline