Manche Webserver manipulieren den QUERY_STRING

CMSimple 4.0 und höher
Post Reply
Gert
Posts: 2466
Joined: Sun 18. Nov 2012, 14:18

Manche Webserver manipulieren den QUERY_STRING

Post by Gert »

Hallo,

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 :o

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');
?>
Jetzt verhält sich CMSimple genau so wie im Thread von Frederic beschrieben. Viele Backendfunktionen funktionieren nicht mehr, Ihr könnt Euch nicht mal mehr ausloggen.

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
Gert Ebersbach | CMSimple | Templates - Plugins - Services
rreinhardklein
Posts: 93
Joined: Mon 14. Jul 2014, 14:32

Re: Manche Webserver manipulieren den QUERY_STRING

Post by rreinhardklein »

Hallo Gert
Wir User können Deine seit Jahren ungebrochenen Bemühungen cmSimple an alles was an Änderungen daherkommt anzupassen, nur dankend bewundern. Bitte weiter so!
Herzliche Grüße aus Wien
Reinhard
Gert
Posts: 2466
Joined: Sun 18. Nov 2012, 14:18

Re: Manche Webserver manipulieren den QUERY_STRING

Post by Gert »

Hallo Reinhard,

vielen Dank - das tut gut ;)

Ich hatte ja schon öfters mal die Illusion, dass es nun mal für ein Jahr gut ist, das letzte mal bei CMSimple 5.23 :mrgreen:

Dann kam Frederik, und ich wollte es nicht glauben, dass die Installation in Ordnung ist. Dann hat mir Frederik Zugang zu seinem Server gegeben, und siehe da - meine Installationen zeigten die gleichen Symptome. Und ich hatte keine Ahnung, woran das lag. Es hat gedauert, bis ich darauf gekommen bin, dass da was mit dem QUERY_STRING nicht stimmt.

Mit den Providern braucht man in der Regel nicht zu diskutieren - die haben immer Recht und machen immer alles richtig. Man kann immer nur reagieren und selbst versuchen, seine Software für alle möglichen Serverkonfigurationen fit zu machen.

Jetzt hoffe ich wieder mal, dass dann mit CMSimple 5.24 zumindest für dieses Jahr Ruhe ist :roll:

Gert
Gert Ebersbach | CMSimple | Templates - Plugins - Services
Post Reply