Newsletter Hook aus Formular -> Invalid request token!
Guten Tag allerseits
Ich brauche zusatzinformationen zu einem Newsletter-Abonnementen und habe mich, nach dem Durforsten des Forums entschieden, es mit einem Hook auf einem Formular zu machen und habe mich an das vorgehen aus dem Thread <Newsletterversand aus Formular aktivieren> gehängt.
Leider bekomme ich nach dem Absenden einen <Invalid request token!> zurück und habe keine Ahnung, wo da das Problem liegen könnte...
Hier, was ich gemacht habe:
- In /system/modules einen neuen Ordner angelegt
-> darin config/config.php und NewsletterFinnova.php erstellt.
Hier die Files die ich erstellt habe:
PHP-Code:
// system/modules/newsletter_finnova/config/config.php
if (!defined('TL_ROOT')) die('You can not access this file directly!');
$GLOBALS['TL_HOOKS']['processFormData'][] = array('NewsletterFinnova', 'processFormData');
PHP-Code:
// system/modules/newsletter_finnova/NewsletterFinnova.php
class NewsletterFinnova extends Frontend
{
public function processFormData($arrPost, $arrForm, $arrFiles)
{
if($arrForm['id'] == 1) {
$subscribe = false;
if($arrPost['newsletter'] == "ja") {
/*ECHO*/ print_r($arrPost);
$subscribe = true;
$PostData = array('email'=>$arrPost['email'], 'FORM_SUBMIT'=>'tl_subscribe','channels[]'=>'1');
$ch = curl_init("http://{$_SERVER['HTTP_HOST']}/newsletter-anmelden-formular.html");
}
}
//subscribe?
if($subscribe) {
$Post = http_build_query($PostData);
curl_setopt ($ch, CURLOPT_HEADER, 0 );
curl_setopt ($ch, CURLOPT_REFERER, "http://{$_SERVER['HTTP_HOST']}/newsletter-anmelden-ok.html");
curl_setopt ($ch, CURLOPT_POSTFIELDS, $Post);
curl_setopt ($ch,CURLOPT_POST,TRUE);
curl_setopt ($ch,CURLOPT_HTTPGET,FALSE);
$data = curl_exec( $ch );
curl_close ($ch);
}
}
}
Hier die Testumgebung:
http://contao.humandigital.ch/newsletter-anmelden.html
-> Formular mit Hiddenfield name="newsletter" value="ja"
... Inhalt des Formular wird per E-Mail versendet
... Eintrag zu den Abonnementen wird nicht ausgeführt :-(
... Fehlerseite <Invalid request token!> wird angezeigt :-(
http://contao.humandigital.ch/newsle...-formular.html
-> Anmeldeformular für Newsletter
... Funktioniert korrekt, erzeugt Bestätigungsmail, eintrag in die Abonnenten-Liste und leitet auf die OK-Seite weiter
http://contao.humandigital.ch/newsle...melden-ok.html
-> OK-Seite mit Hinweis auf das Bestätigungsmail
Die Einzelteile funktionieren wie gewünscht, am Zusammenspiel happert es leider noch :-(
Über Hinweise bin ich sehr dankbar :-)
Morgengruss
Christoph
Scheint ein Problem mit der Übergabe des REQUEST_TOKEN zu sein
Hier mal ein erster Schritt in Richtung der Lösung...
Bei weiterem Recherchieren im Forum bin ich dann zu einem etwas klareren Verständnis über die Request-Tocken gelangt.
Mein Hook funktioniert eigentlich wie gewünscht, bis auf den Request-Token "natürlich"...
Wenn ich in Backend-Einstellungen das "Anfrage-Tokens deaktivieren" setze, funktioniert es.
Status Quo:
Wenn ich mein Formular absende wird folgendes weiter gegeben
PHP-Code:
[vorname] => Hans
[nachname] => Muster
[firma] => Firma GmbH
[funktion_position] => CEO
[email] => name@domain.ch
[newsletter] => ja
[FORM_SUBMIT] => auto_form_1
[REQUEST_TOKEN] => d152c52d6cde5447408800779a08f0b0
[MAX_FILE_SIZE] => 2048000
Nun, so vermute ich, ist der REQUEST_TOKEN für das "erste" Formular und da ich per Hook ja noch ein zweites, das Newsletter-Anmelden Formular aufrufe, bekommt der dann den, durch das erste Formular "verbrauchte" Request-Token.
Hiermit die Frage:
Weiss jemand, wie ich dem Hook ein neuen Request-Token für das zweite Formular mitgeben kann?
Vielen Dank für die Unterstützung
Christoph