Weitere Infos

Inhaltsbereich

Aktuelles zu »Little Boxes«

Diese Seite wird nicht mehr gepflegt. Aktuelle Infos finden Sie im Blog auf pmueller.de.

Sie sehen einen Beitrag in der Einzelansicht (mit Kommentaren).

Zeige alle Beiträge

Invalid Request Token: Kommentarfunktion geht wieder

Vorgestern bekam ich auf meiner Facebook-Seite von Anguel Stankov den Hinweis, dass man auf little-boxes.de keinen Kommentar hinzufügen könne und dass nach dem Abschicken des Kommentarformulars die Fehlermeldung "Invalid Request Token" erscheint. 

Tja. Kurzform: Der Fehler ist behoben, und das Formular funktioniert. Sie können es gerne einmal ausprobieren.

In diesem Beitrag beschreibe ich kurz, woran es lag. 

Invalid Request Token

Die Meldung "Invalid Request Token" ist ein alter Bekannter und erschien häufig nach einem Update auf Contao 2.10. In dieser Contao-Version wurde der "Request Token" eingeführt, ein neues Sicherheitsfeature für Formulare.

Nina Gerling hat die Lösung damals in Ihrem Forumsbeitrag "Tipps zum Updaten auf Contao 2.10" in Punkt 7b geschildert: 

Bei Templates mit Formularen muss nun z.B. unbedingt die Zeile 
<input type="hidden" name="REQUEST_TOKEN" value="32012fdf047d4d417568a67de940fbbb" />
(innerhalb von <form ...> und </form> mitgesandt werden!

Das war mir bekannt, und ich habe als erstes gecheckt, ob das Template ce_comments.xhtml, das meiner Ansicht nach für die Kommentare zuständig ist, die entsprechende Zeile mit dem Request Token enthält, und es war alles richtig. Aber leider tauchte die Zeile im Frontend-Quelltext nicht auf. Rätselhaft... 

Als Sofortmaßnahme habe ich im Backend in "System - Einstellungen - Sicherheitseinstellungen" die Option "Anfrage-Token deaktivieren" angekreuzt, damit die Kommentarfunktion benutzt werden kann, aber das war ja mehr ein Workaround als eine Lösung, und das wollte ich auf Dauer nicht so lassen. 

Ab ins Forum

Da ich an der Stelle etwas ratlos war, habe ich erstmal einen Beitrag im Forum geschrieben und das Problem geschildert.

Der erste Vorschlag kam von "ciaobello". Er empfahl, die Installation per contao-check.php auf Integrität zu überprüfen. Das hatte ich aber schon gemacht, und da war buchstäblich alles im grünen Bereich.

Außerdem wies er daraufhin, dass es auf github eine neuere Version des Templates ce_comments gibt. Aber auch damit war das Problem nicht behoben. 

Community-Moderator "xchs" empfahl dann, noch einmal alle Templates im Ordner /templates/ zu überprüfen, denn irgendwo kommt der falsche Quelltext ohne die Zeile mit dem Request Token her. 

Das falsche Template... 

Ich habe dann in FileZilla den gesamten Webspace auf ce_comments durchsuchen lassen, aber es gab nur meine Kopie in /templates und die Originale in system/modules/comments/templates. Also habe ich in jedes Template einen Kommentar geschrieben und geschaut, ob der im Frontendquelltext ankommt. Fehlanzeige. Niente. Nix. 

Damit blieb nur noch die Möglichkeit, dass der Quelltext von einem anderen Template generiert wird. Und siehe da. Bingo. Das Formular stand in mod_newsreader.xhtml. Ich habe das Template noch einmal mit dem Original von 2.11.4 verglichen und die fehlende Zeile hinzugefügt. 

Die Moral von der Geschicht' ...

... habe ich im Best Practice Workshop auf der Contao-Konferenz selbst vorgetragen: 

Nach einem Contao-Update eigene Template-Kopien mit dem Original vergleichen und ggfs. anpassen. 

Ich müsste einfach nur meine eigenen Ratschläge befolgen. Wie war noch gleich das Fazit aus dem Workshop: "Templates ändern? Nur wenn es wirklich sein muss..." 

Vielen Dank an Anguel für den Hinweis und an ciaobello und xchs für die Vorschläge im Forum. 

24.06.2012 von Peter Müller

Zurück