Mein Formular (zB. Login) funktioniert nicht!

Viele verschiedene Ursachen können dazu führen, dass Formulare nicht funktionieren. Das kann auch die Anmeldung (Login) im Frontend betreffen. Eine große Gruppe von Ursachen macht dabei aus, wenn die aktuelle Webseite nicht zu der verarbeitenden "passt". Dabei muss zwar die Webseite (im Sinne von Navigationsposition), die das Formular absendet und die, dies es auffängt, nicht zwangsläufig identisch sein. In vielen Fällen ist aber identisch und dennoch gibt es Kommunikationsprobleme.

Wie Formulare (klassisch) funktionieren

Klassische HTML-Formulare arbeiten so, dass auf einer HTML-Seite Formularfelder angeboten werden, deren Daten beim Absenden an eine dynamische Webseite übergeben werden. Die empfangende Webseite muss in dem Sinne dynamisch sein, dass der Server, der sie bereit hält, aktiv die Daten entgegennehmen und verarbeiten muss. (Zwar gibt es auch andere Einsatzmöglichkeiten, die zB. ohne einen Server auskommen, aber die lassen wir hier mal außen vor.) Ohne dynamische Elemente wie der Scriptsprache PHP auf derm Server funktioniert das nicht.

In sehr vielen Fällen liegt es nun auf der Hand, dass dieselbe Definition angibt, wie das vorher sichtbare Formular aufgebaut ist und was später beim Empfang mit den Daten gemacht werden soll. Diese Fälle werden von den Formular-Elemente des calladium CMS behandelt.

Was schief laufen kann

Weiterleitungen

Eine klassische Fehlersituation entsteht, wenn Weiterleitungen im Spiel sind. Die Formulardaten werden erfolgreich abgesendet. Aber bei Ankunft am Server entscheidet dieser, dass zu einer andere Adresse weitergeleitet werden soll. Bei dieser Weiterleitung werden dann in der Regel die eben gesendeten Formulardaten nicht mitgesendet. Das Weiterleitungsziel weiß nichts von der Sendung und empfängt den Besucher mit einem leeren Formular wie zuvor. Das Formular nicht.

Weiterleitungen kommen zB. vor, wenn zB. Clean URLs eingesetzt werden oder eine automatische Umstellung auf sichere Verbindungen (SSL: https://...) erfolgt. Normalerweise würde zwar dann auch die ursprüngliche Formularseite die gleiche URL (also Internetadresse) haben. Aber es gibt Situationen, bei denen das Formular zB. von einer abweichenden Adresse ausgeht, also seine eigene Adresse nicht kennt.

Abhilfe: Wenn ein Formular relativ adressiert wird, zB. durch eine ebenso lautende Formular-Option, dann sollte eine solche fälschliche Annahme nicht vorkommen. Sie wird konnte aber bislang nicht generell eingesetzt werden, da das calladium CMS auch eine spezielle Art von Webseiten unterstützt, die nun beschrieben werden.

Veraltete statische Seiten

Cross-CMS

Das calladium CMS beherrscht seit frühen Versionen eine heute nur noch sehr selten eingesetzte Aufteilung in statische und dynamische Webseiten auf unterschiedlichen Servern. Historisch war zum Beispiel die Nutzung von dynamischen Webseiten noch teuer und nicht jeder konnte oder wollte sich ein heute übliches dynamisches Webhosting leisten. Eine Lösung bestand dann darin, ein günstiges statisches Webhosting für die eigene Domain bei einem Provider zu mieten und den für Formulare nötigen dynamischen Server von einem anderen Provider unter einer ganz anderen Domain hinzu zu nehmen (meist auch gemietet). Dies war in der Summe viel günstiger, aber machte es nötig, dass statisch gemachte Seiten des ersten Servers mit ihrem dynamischen Pendant auf einem anderen Server kommunizieren. Da das calladium CMS vollständig auf dynamischen Webseiten basiert, lief es auf dem zweiten Server, während die veröffentlichten Seiten zunächst auf dem ersten Server statisch ausgeliefert wurden (CMS im Cross-Betrieb). Die Formulare auf den statisierten Webseiten müssen auf die dynamischen Seiten des Servers des (Cross-)CMS verweisen, damit Formulardaten dort entgegen genommen und verarbeitet werden können.

Wenn sich nun ein Formular ändert (zB. neue Formularfelder), so passen die statisierten Webseiten nicht mehr zur Definition des Formulars. Die Kommunikation funktioniert nicht mehr.

Abhilfe: Neu Generieren und mit dem Fernserver abgleichen.

Beschleunigte Webseiten

Auch heute noch gibt es gute Gründe, statische Webseiten zu generieren. Denn jede Berechnung einer Webseite fordert den Server und macht ihn etwas langsamer. Da aber in vielen Fällen erst mal gar nicht die dynamischen Eigenschaften benötigt werden, können Server mehr Anfragen flüssig ausliefern, wenn sie auf vorgenerierte Webseiten zurück greifen können oder zumindest soeben berechnete Webseiten für den nächsten Besucher einfach wieder verwenden können.

Auch bei beschleunigten Webseiten kann es zum Auseinanderdriften der statisierten und der dynamischen Version kommen. In der Regel sollte das erzwingen einer erneuten Generierung das Problem beheben.

Abhilfe: Neu Generieren, meist durch Löschen aller vorgenerierten Webseiten (bei Generierung "on demand", also auf Verlangen).