Zum Inhalt springen

Caching Probleme bei eigener Mailform

Erstellt am 18. Dezember 2008 · 5 Antworten · letzte Antwort am 24. Dezember 2008

Tags: Frage

zapp-it ·

Hi!

Ich habe eine eigene Mailform geschrieben und stehe nun vor einem Problem bzgl. des Typo3-Cachings.
Folgendes ist realisiert:
Es werden Daten über ein Formular übermittelt, diese werden per PHP validiert und anschließend wird der Content geändert - sprich es wird eine Succes-/Failmeldung ausgegeben.

Das Caching ist in meiner Extension per

$this->pi_USER_INT_obj=1;

ausgeschaltet.

Füge ich es nun einer Typo3-Installation hinzu, bei der das Caching im TypoScript ebenfalls deaktiviert ist, so funktioniert die Extension einwandfrei.

Schalte ich nun das Caching ein, so ergeben sich folgende Fälle:

1. Das Caching ist auf der gesamten Webseite aktiviert und auf der Seite, welches das Formular enthält, wird der Inhalt nicht mehr validiert. Der Inhalt wird verschickt jedoch erscheint wieder ein leeres Formular. Leere ich nun den Firefox-Cach und betätige erneut "absenden", so wird der Inhalt validiert und das Absenden ist erfolgreich.

2. Das Caching ist ausschließlich auf der Seite mit dem Formular deaktiviert. Hier Funktioniert die Validation der Einträge einwandfrei. Ist die Validation erfolgreich sodass eine Email gesendet werden kann, tritt der Fehler 500 (Internal Server Error) auf. (Diese Seite hat ihr eigenes Template - sofern das von Bedeutung ist - eben nur mit der nicht-caching-Option)

Das ist mein Problem und ich komme einfach nicht auf die Lösung bzw. die Ursache. Kann mir jemand helfen?

Wieso wird meine Extension überhaupt noch gecached, obwohl ich

$this->pi_USER_INT_obj=1;

im Extensioncode stehen habe?

Und warum cachen die Explorer die Seite (wenn ich den Explorer-Cach ja explizit lösche, erhalte ich ja meine validierung) - kann ich das abstellen?

Vielen Dank im Vorraus für jede Antwort!!!

Gruß Jonas

zapp-it ·

klasse, funktioniert, vielen dank!

kannst du mir auch sagen warum

$this->pi_USER_INT_obj=1;

unbeachtet bleibt und die extension nur mit

plugin.tx_deineext_pi1 = USER_INT

aus dem caching herausgenmmen wird?

gruß jonas

just2b ·

weil du auch TYPO3 sagen musst, dass die Ext nicht gecached werden soll, nicht nur innerhalb der Extension selbst.

üblicherweise geht das in der ext_localconf.php

t3lib_extMgm::addPItoST43($_EXTKEY,'pi1/class.tx_deinkey_pi1.php','_pi1','list_type',0);

georg

zapp-it ·

ok, dann liegt es also daran, dass ich im nachhinein einfach den php-schnipsel eingefügt habe und nicht das no-caching über den kickstarter zusammengeklickt hatte - welcher mir genau den eintrag

t3lib_extMgm::addPItoST43($_EXTKEY,'pi1/class.tx_deinkey_pi1.php','_pi1','list_type',0);

geschrieben hätte?

gruß