Formular versenden klappt nicht

  • Hallo,

    ich habe ein Anmeldeformular (Anmeldeformular für alle Angebote) erstellt. Nachdem ich meine Website gelanden habe, kommen, wenn man das Formular ausfülllt folgende Meldungen:

    1.

    SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

    2.

    is_valid ) { $_SESSION['verifiedcaptcha'] = $request["recaptcha_challenge_field"] . $request["recaptcha_response_field"]; echo "OK"; } else { echo "NOK: " . $resp->error; } exit; } // Stage 1 if ( isset($request["f_receiver"]) ) { CatchUploads( $request ); $formData = $request; $encodedFormData = base64_encode( serialize( $formData )); if( isset( $request["sc"] )) { //ValidateLoadMainFormData( $formData ); $error = ValidateLoadMainFormData( $formData ); if ( $error == null ) { DoProcessFormAndRedirect( $formData, $successPage, $errorPage ); } else { echo $error; exit; } } else { if ( isset( $request["recaptcha_response_field"] ) ) { // we entered the PHP with captcha already in the form Data. Need to handle this differently below. $enteredWithCaptcha = "yes"; } else { DisplayCaptchaChallenge(); } } if ( $enteredWithCaptcha == null ) { exit; } } // Stage 2 if ( isset( $request["recaptcha_response_field"] ) || isset( $request["pending"] )) { if ( $enteredWithCaptcha == null ) { $encodedFormData = $request["formData"]; $formData = unserialize( base64_decode( $request["formData"] )); } else { // we entered the PHP with captcha already in the form Data so the request doesn't yet include formData $formData = $request; } $error = ValidateLoadMainFormData( $formData ); if ( $error == null ) { //check if we already verified the captcha once (a captcha can only be solved once) if ( $_SESSION['verifiedcaptcha'] == $request["recaptcha_challenge_field"] . $request["recaptcha_response_field"] ) { DoProcessFormAndRedirect( $formData, $successPage, $errorPage ); } else { $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $request["recaptcha_challenge_field"], $request["recaptcha_response_field"]); if ( $resp->is_valid ) { DoProcessFormAndRedirect( $formData, $successPage, $errorPage ); } else { $error = $resp->error; DisplayCaptchaChallenge(); } } } else { echo $error; } exit; } echo "Illegal script call."; exit; // ======================================================== ?>

    Was mache ich falsch?

    http://www.yogasensitive.de/anmeldeformula…e-angebote.html

    Danke und Gruß, Michaela

    Einmal editiert, zuletzt von Hanabi (12. Mai 2017 um 19:41)

  • Hallo Michaela,

    gibt es einen Grund, dass Du den Versand der E-Mail über SMTP eingestellt hast? Normalerweise sollte der Versand ja auch über das interne phpmail funktionieren. Wenn SMTP bewusst gewählt ist, überprüfe mal, ob die Porteinstellungen stimmen. https://help.united-domains.de/faq-article/wi…-die-smtp-daten

    Die Captcha-Option scheinst du ja erst mal wieder raus genommen zu haben, falls nicht, ändere dies bitte vorläufig, damit wir zunächst Problem 1 gelöst kriegen.

  • mal eine Stufe höher (direkt bei Optionen) beim Script "Via PHP" auswählen. Vermutlich ist zur Zeit "Via PHP mit Sicherheitsprüfung (neu)" ausgewählt.

  • Hallo Michaela,

    Ich habe mal über das allgemeine Kontaktformular eine Nachricht geschickt. Eine Bestätigung des Versands habe ich nicht bekommen. Falls Du die Nachricht erhalten hast, ist im allgemeinen Kontaktformular die Bestätigungsadresse nicht richtig konfiguriert, der Versand über php würde dann aber grundsätzlich funktionieren. Kontrolliere bitte auf der Seite Kontakt die Einstellungen zur erfolgreichen Versendung, bei Bedarf ändere die Erfolgsseite. Wenn das allgemeine Formular funktioniert, ist der Wurm irgendwo im Anmeldeformular. An dieser Stelle dürfte es am einfachsten sein, das Formular komplett neu anzulegen.

  • Die Option "Formulare per SMTP versenden" sollten Sie zunächst nicht aktivieren. Die Fehlermeldung "SMTP connect() failed" deutet aber darauf hin, dass dies noch der Fall ist. Stellen Sie also sicher, dass die Option tatsächlich deaktiviert ist und veröffentlichen Sie danach das Projekt damit diese Änderungen auch auf dem Server landen.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Danke erst mal. Nun weitere zwei Fragen (ich bin Laie und kämpfe mich immer Schritt für Schritt durch)

    1.

    Wie und wo muss ich was ändern, wenn ich möchte, dass derjenige der mich konaktiert, eine Bestätigungsmail bekommt?

    2.
    Wo habe ich denn SMTP aktiviert?

  • Hallo Michaela,

    das ist gar kein Problem, wenn wir das hier Schritt für Schritt machen. Dann weis der andere wenigstens, dass wir an den einzelnen Punkt einen Haken machen können.

    1. Erfolgs- und Fehlerseiten:

    Du hast anscheinend entweder mit einer leeren Vorlage angefangen oder die Systemseiten entfernt, da diese in der Seitenübersicht fehlen. Geht aber ganz einfach, erstelle jeweils eine Seite "Nachricht erfolgreich gesendet" mit dem Text "Herzlichen Dank, Ihre Nachricht wurde versendet" sowie eine Seite "Nachricht konnte nicht versendet werden" mit dem Text " Ihre Nachricht konnte nicht versendet werden. Bitte versuchen Sie es wieder zu einem späteren Zeitpunkt oder senden Sie direkt eine E-Mail an webmaster ( at ) yogasensitive.de" (Hinweis: nicht webmaster@ verwenden, sondern die Mail-Adresse durch Leerzeichen maskieren.)

    Im Formular wählst Du dann als Erfolgs-URL die Seite "erfolgreich gesendet" und als Fehler-URL die Seite "konnte nicht versendet werden"

    Da beide Seiten keinen eigenständigen Informationswert haben, gehe im Seitenbaum noch auf "bearbeiten" ->"Google" und dort KEIN Häkchen bei "in Sitemap einschließen. Danach auf "Sichtbarkeit" und KEIN Häkchen bei "Seite im Navigationsmenü anzeigen. Mit "OK" bestätigen. Das Symbol der Seite ändert sich auf "Auge"

    2. SMTP:

    Nach Deinem Bild ist es nicht ausdrücklich aktiviert. Eigentlich sollte aber das Feld "Verschlüsselung" leer sein. Irgendwann warst Du mal da drauf und jetzt lässt sich "leer" nicht mehr auswählen". Wechsle dann bitte mal auf "Auto-TLS" und probiere dann mal, ob es funktioniert. Wenn nicht, habe ich jetzt auch weitere keine Idee, außer das Formular zu löschen und wieder neu anzulegen (und danach nichts bei den optionalen Einstellungen ändern ;))

    3. Bestätigungsmail:

    Dieser Text gehört dann auf eine separate Systemseite "Bestätigung der Anmeldung", die Du wie unter Punkt 1 anlegst und dann als "Erfolgs-URL" auswählst.

    PS: Ich klinke mich jetzt erst mal aus.

  • Vielen Dank. Das mit dem Kontaktformular hat geklapp.

    Nur mit dem neu erstellten komme ich nicht weiter. Ich habe es neu angelegt und es kommt immer die Verschlüsselung:


    Es kommt immer noch diese Meldung:

    is_valid ) {
    $_SESSION['verifiedcaptcha'] = $request["recaptcha_challenge_field"] . $request["recaptcha_response_field"];
    echo "OK";
    }
    else {
    echo "NOK: " . $resp->error;
    }
    exit;
    }

    // Stage 1
    if ( isset($request["f_receiver"]) )
    {
    CatchUploads( $request );
    $formData = $request;
    $encodedFormData = base64_encode( serialize( $formData ));

    if( isset( $request["sc"] )) {
    //ValidateLoadMainFormData( $formData );
    $error = ValidateLoadMainFormData( $formData );

    if ( $error == null ) {
    DoProcessFormAndRedirect( $formData,
    $successPage,
    $errorPage );
    }
    else {
    echo $error;
    exit;
    }
    }
    else
    {
    if ( isset( $request["recaptcha_response_field"] ) ) {
    // we entered the PHP with captcha already in the form Data. Need to handle this differently below.
    $enteredWithCaptcha = "yes";
    }
    else {
    DisplayCaptchaChallenge();
    }
    }

    if ( $enteredWithCaptcha == null ) {
    exit;
    }
    }

    // Stage 2
    if ( isset( $request["recaptcha_response_field"] ) ||
    isset( $request["pending"] ))
    {
    if ( $enteredWithCaptcha == null ) {
    $encodedFormData = $request["formData"];
    $formData = unserialize( base64_decode( $request["formData"] ));
    }
    else {
    // we entered the PHP with captcha already in the form Data so the request doesn't yet include formData
    $formData = $request;
    }
    $error = ValidateLoadMainFormData( $formData );

    if ( $error == null )
    {
    //check if we already verified the captcha once (a captcha can only be solved once)
    if ( $_SESSION['verifiedcaptcha'] == $request["recaptcha_challenge_field"] . $request["recaptcha_response_field"] ) {
    DoProcessFormAndRedirect( $formData, $successPage, $errorPage );
    }
    else {
    $resp = recaptcha_check_answer ($privatekey,
    $_SERVER["REMOTE_ADDR"],
    $request["recaptcha_challenge_field"],
    $request["recaptcha_response_field"]);

    if ( $resp->is_valid )
    {
    DoProcessFormAndRedirect( $formData, $successPage, $errorPage );
    }
    else
    {
    $error = $resp->error;
    DisplayCaptchaChallenge();
    }
    }
    }
    else
    {
    echo $error;
    }
    exit;
    }
    echo "Illegal script call.";
    exit;
    // ========================================================

    ?>

    Was mache ich falsch? Kann jemand helfen?

  • Hallo Michaela,

    eventuell bietet der Support am Montag an, das Du dass Projekt einschicken kannst. Ansonsten würde ich empfehlen, in ein kostenpflichtiges Support-Ticket zu investieren, https://www.zeta-producer.com/de/support.html

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!