Veröffentlichungsdatum: 13. November 2015
Änderungsdatum: 10. Oktober 2023
weblication cms formular kontakt daten werte danke success bestätigungsseite
Werte bzw. Daten, die in ein (Kontakt)-Formular eingegeben wurden, können Sie auf unterschiedliche Weise nach dem Absenden weiterverarbeiten.
Weblication® CMS liefert Ihnen mit dem Weblic® Formular vielfältige Möglichkeiten, die Formulardaten weiter zu verarbeiten. Wir zeigen Ihnen nachfolgend ein paar Möglichkeiten auf. Die Umsetzungen basieren auf dem jeweils aktuellen Formular-Weblic®. Mit dem Formulareditor-Modul haben Sie zudem eine komfortable Möglichkeit, diese Umsetzungen rein über Pflegemasken zu realisieren.
Um die Daten, die ein Besucher über das Kontakt-Formular eingibt, nach dem Absenden über die Session an die Bestätigungsseite (Danke-Seite) zu übergeben, können Sie auf Framework-Funktionen zurückgreifen.
Hierzu speichern Sie im Formular die Werte z.B. über die Framework-Funktion wSession::setValue. Setzen Sie dies im Formular, bevor die Daten gelöscht werden ( $this->initFormData() ). Auf diese gespeicherten Werte können Sie nach Abschicken des Formulares über die Framework-Funktion wSession::getValue zurückgreifen. Das folgende Beispiel zeigt dies anhand der Danke-Seite, die über redirectSuccess nach Versand des Formulares angezeigt wird.
,,, <wd:fragment id="serverEventOnSubmit" type="text.script"><![CDATA[//... //... //Hier können Sie weitere Funktionen einfügen // Formular-Werte in Session schreiben $sessionFormValues = wSession::setValue('kontaktanfrage',$this->getFormData()); $this->initFormData(); // ... ]]></wd:fragment> ...
... <wd:item type="script.php" uid="154554cc59b435db25f02fbaa9227d66"> <wd:fragment id="title" type="char.text"/> <wd:fragment id="display" type="char.display"/> <wd:fragment id="text" type="text.standard"><![CDATA[// Werte aus Formular-Session ausgeben: print '<div class="elementForm">'; print ' <dl class="formTable">'; $sessionFormValues = wSession::getValue('kontaktanfrage'); if($sessionFormValues != NULL){ print '<dt><label>Name:</label></dt>'; print '<dd>'.$sessionFormValues['name'].'</dd>'; print '<dt><label>E-Mail:</label></dt>'; print '<dd>'.$sessionFormValues['email'].'</dd>'; print '<dt><label>Mitteilung:</label></dt>'; print '<dd>'.$sessionFormValues['message'].'</dd>'; } print ' </dl></div><div style="clear:both"></div>'; ]]></wd:fragment> <wd:fragment id="execution" type="char.default">post</wd:fragment> </wd:item> ...
Um die Daten, die ein Besucher über das Kontakt-Formular eingibt, nach dem Absenden über URL-Parameter via GET an die Bestätigungsseite (Danke-Seite) zu übergeben, können Sie auf Framework-Funktionen zurückgreifen.
Beachten Sie:
Bei der Übergabe personenbezogener Daten kann diese Umsetzung auch dazu führen, daß diese Daten auf dem Server protokolliert werden (access-logs etc.) bzw. in Analyse-Tools einfliessen, was aus Datenschutzgründen zu bedenken ist!
Hierzu übergeben Sie im Formular die Werte an die Weiterleitungsseite nach dem Absenden (redirectURL). Ergänzen Sie dies im Formular am besten dort, wo Sie weitere Funktionen innerhalb der Box "Nach dem Absenden auszuführendes Skript" (serverEventOnSubmit) einfügen können. Auf diese URL Get-Parameter können Sie nach Abschicken des Formulares über die Framework-Funktion wRequest::getParameterSecure zurückgreifen. Das folgende Beispiel zeigt dies anhand der Danke-Seite, die über redirectSuccess nach Versand des Formulares angezeigt wird.
... <wd:fragment id="serverEventOnSubmit" type="text.script"><![CDATA[ ... // ... //Hier können Sie weitere Funktionen einfügen $this->initFormData(); $this->setStatus("sent"); wCache::clearCachePath($this->url); if($this->getVar("redirectSuccess") == ""){ $redirectURL = wURL::setParameter($this->url, 'wFormStatus', ''); wOutput::loadWithoutCache($redirectURL); wResponse::redirect($redirectURL); } else{ //wResponse::redirect($this->getVar("redirectSuccess")); $redirectURL= 'http://'.$_SERVER["HTTP_HOST"].$this->getVar("redirectSuccess"); $redirectURL= wURL::setParameter($redirectURL, 'subject', $mailData["subject"]); $redirectURL= wURL::setParameter($redirectURL, 'lastname', $mailData["lastname"]); $redirectURL= wURL::setParameter($redirectURL, 'firstname', $mailData["firstname"]); $redirectURL= wURL::setParameter($redirectURL, 'email', $mailData["email"]); $redirectURL= wURL::setParameter($redirectURL, 'message', $mailData["message"]); wResponse::redirect($redirectURL); } // ... ]]></wd:fragment> ...
... <wd:item type="script.php" uid="154554cc59b435db25f02fbaa9227d66"> <wd:fragment id="title" type="char.text"/> <wd:fragment id="display" type="char.display"/> <wd:fragment id="text" type="text.standard"><![CDATA[ print '<div class="elementForm">'; print ' <dl class="formTable">'; $formSubject = wRequest::getParameterSecure('subject'); $formFirstname = wRequest::getParameterSecure('firstname'); $formLastname = wRequest::getParameterSecure('lastname'); $formEmail = wRequest::getParameterSecure('email'); $formMessage = wRequest::getParameterSecure('message'); if($formSubject != NULL){ print '<dt><label>Betreff:</label></dt>'; print '<dd>'.$formSubject.'</dd>'; print '<dt><label>Vorname:</label></dt>'; print '<dd>'.$formFirstname.'</dd>'; print '<dt><label>Nachname:</label></dt>'; print '<dd>'.$formLastname.'</dd>'; print '<dt><label>E-Mail:</label></dt>'; print '<dd>'.$formEmail.'</dd>'; print '<dt><label>Mitteilung:</label></dt>'; print '<dd>'.$formMessage.'</dd>'; } print ' </dl></div><div style="clear:both"></div>';]]></wd:fragment> <wd:fragment id="execution" type="char.default">post</wd:fragment> </wd:item> ...