Zum Inhalt springen

Formular-Daten werden im Frontend nicht übermittelt

Erstellt am 4. Oktober 2004 · 4 Antworten · letzte Antwort am 6. Oktober 2004

Tags: Frage

javalexG ·

Hallo!

Ich habe folgendes Problem mit meiner eigenen Extension und hoffe, dass mir hier jemand weiter helfen könnte:

Ich habe ein Formular auf der Webseite und habe dafür eine eigene Extension geschrieben, die die Form ausgeben soll, falls noch nichts übermittelt wurde und sonst einen Text.

Die Form habe ich nach der Anleitung unter http://typo3.org/documentation/document-library/form_extension_tut/ gemacht.

Nun zum Problem:
Wenn ich aus Backend die Seite anschaue, funktioniert alles super. Wenn ich aber die Seite direkt aus dem FE aufrufe (also kein be_user Cookie gesetzt), dann funktioniert die Übermittlung von Daten nicht. :-(

Eine Idee, wie ich die Seite zum Laufen kriege?

Danke im Voraus

Alex

TW ·

hi
hast du den code 1 zu 1 übernommen.....

oder hast du ihn irgendwo abgeändert....

wie hast du das ganze eingebunden?

also ein wenig code, damit wir mehr wissen..

cu
thorsten

javalexG ·

Hallo!

Danke für die Interesse an meinem Problem. 😃

Ich habe den Code praktisch kopiert.
Insbesondere steht bei mir folgendes:

$this-content .= "<form action="".$this->pi_getPageLink($GLOBALS["TSFE"]->id)."" method="post">";
$this-content .= "<input type="hidden" name="".$this->prefixId."[DATA][myVar]" value="myValue">";
...
$this-content .= "<input type="submit" name="".$this->prefixId."[submit_button]" value="".$this->pi_getLL("submit_button_MobileDeviceManufacturer")."">";

Der Formular wird also an die gleiche Seite geschickt.
Allerdings prüfe ich, bevor der Formular oder ein Text angezeigt werden, ob schon etwas übermittelt wurde:

if(isset($this->piVars['submit_button']))
...

Solange ich aus dem Back-End mit "Anzeigen" die Seite anschaue, gibt es wie gesagt keine Probleme. Da wird ja auch ein Cookie gesetzt, dass ich aus dem Back-End komme. So weit ich weiß, wird dann kein Caching genutzt. Wenn ich aber ohne diesen Cookie die Seite direkt im Frontend aufrufe, dann wird sie anscheinend "gecached". Aber wie kann ich es (bei einem Formular) umgehen?

Danke im Voraus.

Alex

alibu ·

Wenn Du

$GLOBALS["TSFE"]->set_no_cache();

zu Beginn Deiner den Content erzeugenden Funktion anführst, müsste es funktionieren.

Gruß
Alex

javalexG ·

Hallo!

Danke! Das hat jetzt geholfen.
Komisch ist nur, dass ich die gleiche Zeile schon mal versucht habe, die aber nicht funktioniert hat.

Auf jedem Fall habe ich folgendes festgestellt:
Man muss:

  • - alle 'no_cache=1' aus TypoScript entfernen
    - Cache komplett löschen
    - dann die Extension aufrufen

Dann läuft alles so wie es soll.

Gruß

Alex