Seit seiner Geburt vor mehr als 25 Jahren hatte CMSimple ein Problem: Manche Seitennamen geraten in Konflikt mit CMSimple Funktionen und sind nicht verwendbar.
Es handelt sich dabei ausschliesslich um kleingeschriebene Seitennamen. Bei deutschsprachigen Seiten tritt das Problem sehr selten auf, da man in der deutschen Sprache einen Seitennamen eigentlich immer mit einem Grossbuchstaben beginnt. In den Anfangszeiten handelte es sich um downloads und images als Seitennamen, später weitete es sich aber immer weiter aus. Die Anzahl der problematischen Seitennamen wuchs immer weiter.
Wenn man nicht eingeloggt ist, gibt es keine Probleme. Die offenbaren sich erst dann, wenn man diese Seiten bearbeiten will.
Mit CMSimple 5.22 war dieses Problem behoben. Die Lösung war, dass im Backend die entsprechenden Funktionen nur dann ausgelöst wurden, wenn der QUERY_STRING (alles nach dem "?" in der Adresszeile des Browsers) mit einem "&" begann.
Ein Beitrag von Frederik brachte mich aber auf die Spur eines Problems, mit dem ich nie und nimmer gerechnet habe: Es gibt Webserver, die ein führendes "&" aus dem QUERY_STRING entfernen
Das ist eigentlich laut Google Recherche bei php nicht üblich, aber siehe da - manche halten sich nicht an Konventionen.
Wenn Ihr das mal nachvollziehen wollt in einer Testinstallation von CMSimple 5.22+, einfach eine Zeile in die index.php im CMSimple Root einfügen:
Code: Select all
<?php /* utf8-marker = äöü */
$pth['folder']['base'] = './';
// neue Zeile
if(substr($_SERVER['QUERY_STRING'],0,1) == '&') $_SERVER['QUERY_STRING'] = substr($_SERVER['QUERY_STRING'],1);
include('./cmsimple/cms.php');
?>Ein führendes "&" taugt also nicht als Unterscheidungsmerkmal zwischen Seite und Funktion, also habe ich in CMSimple 5.24 eine Zeichenkette davorgesetzt, die vermutlich niemand und in keiner Sprache als Seitennamen verwenden wird. So ein URL sieht dann z. B. so aus: .../?k2chj47mrx3p&settings - im Backend ist sowas ja akzeptabel.
Bei meinen Tests ist mir aufgefallen, dass der Togglebutton Bearbeiten/Vorschau auch dann aktiv ist, wenn gar keine editierbare Seite aufgerufen ist. Ein Klick darauf führt dann in der Regel zur Startseite. Komisch, dass das bisher noch niemanden gestört hat. Jetzt wird der Togglebutton Bearbeiten/Vorschau durch einen Link zur Startseite ersetzt, wenn keine editierbare Seite aufgerufen ist.
Die Tests sind im Prinzip abgeschlossen, und ich werde CMSimple 5.24 in den nächsten Tagen veröffentlichen. Bs dahin könnt Ihr Euch ja mal den Spass mit der neuen Zeile in der index.php gönnen
Gert