Ergebnis 1 bis 12 von 12

Thema: Form_captcha funktioniert nicht?

  1. #1
    Contao-Fan
    Registriert seit
    13.12.2012.
    Beiträge
    621

    Standard Form_captcha funktioniert nicht?

    Hallo,

    ich nutze für meine Formulare die unveränderte Sicherheitsabfrage von Contao, jetzt bekomme ich aber immer wieder Spammails.
    So wie ich das sehe, funktioniert das ja nach der Honeypot Methode, wenn ich jetzt aber das "Do not fill out" Feld sichtbar mache und es ausfülle, wird das Formular trotzdem abgeschickt, wie kommt das?
    Das Feld für die Rechenaufgabe ist ja auch versteckt und schon vorausgefüllt, ist das normal so?

    LG & Danke
    Geändert von fr3d83 (14.11.2018 um 10:00 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    13.12.2012.
    Beiträge
    621

    Standard

    Keiner eine Idee, ansonsten nutze ich das alte template von 3.5:
    PHP-Code:
    <div class="captcha-container<?php if ($this->class): ?> <?php echo $this->class?><?php endif; ?>">
        <?php echo $this->generateLabel(); ?> 
        <?php echo $this->generate(); ?>
        <?php echo $this->generateQuestion(); ?>
        <p class="error"><?php echo $this->getErrorsAsString(); ?></p>
    </div>

  3. #3
    Contao-Nutzer Avatar von hinzke
    Registriert seit
    05.02.2014.
    Beiträge
    175
    Partner-ID
    10356
    Contao-Projekt unterstützen

    Support Contao

  4. #4
    Contao-Fan
    Registriert seit
    13.12.2012.
    Beiträge
    621

    Standard

    Ich wollte eigentlich keine neue Erweiterung installieren, ich wollte erst mal schauen wo der Fehler liegt, den die Methode, wo der nutzer überhaupt nichts machen mus (Honeypot) wäre mir am liebsten.
    Die Rocksolid AntiSpam erweiterung ist doch in Contao 4.4 integriert.

  5. #5
    Contao-Nutzer Avatar von hinzke
    Registriert seit
    05.02.2014.
    Beiträge
    175
    Partner-ID
    10356
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ach sorry, falsch verstanden.

    Hattest du das 3.5er Template schon drin und es hat nicht funktioniert, oder funktioniert es nur mit dem 3.5er Captcha-Template?

    Ich hatte dort eigentlich mit dem 4.4er Standardtemplate noch keine Probleme.

  6. #6
    Contao-Fan
    Registriert seit
    13.12.2012.
    Beiträge
    621

    Standard

    Auf einer anderen Contao Seite von mir, auch 4.4, mit dem Standart form_captcha template, funktioniert alles, soll heißen wenn ich das "Do not fill" Feld sichtbar mache und dort etwas eintrage, kommt die Meldung, dass die Sicherheitsabfrage falsch ist, also passt da alles.

    Aber ich weis woran es liegt, da ich die Daten an einen Dienstleister (Hubspot) via Post Url schicken lasse, wird die Email verschickt, wenn ich das verschicken wieder normal über Contao machen lasse, funktioniert das Captcha.

    Gibt es da irgend eine Lösung, wenn ich die Daten an einen Drittanbieter schicken lasse?

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Erkläre das mal genauer. Wie und womit schickst du Daten an einen Drittanbieter?

  8. #8
    Contao-Fan
    Registriert seit
    13.12.2012.
    Beiträge
    621

    Standard

    Ok, also ich habe im BE für jedes Formular eine Option eingebaut, dass Formular an den Dienstleister / Drittanbieter zu schicken, da fügt man lediglich die URL und die ID des Formular vom Drittanbieter ein.

    Normalerweise ist es ja so, wenn man bei einem Formular dass an Contao geschickt wird, ein flasches Captcha eingibt, merkt das Contao erst nach dem "Submit" an Contao. Aber da wir ja das Formular nicht an Contao schicken, sondern an den Drittanbieter, bleibt quasi die validierung der Captcha eingabe aus.

    Ein Beispiel:
    https://bit.ly/2B6alUI

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Aber wie lässt du das dann überhaupt an den Drittanbieter schicken? Überschreibst du irgendwie die form action - oder einfach per JavaScript? Wenn ja: ich würde das anders lösen, und zwar über einen processFormData Hook. Dann wird das Formular auf jeden Fall zuerst von Contao validiert, bevor es an den Drittanbieter geschickt wird.

  10. #10
    Contao-Fan
    Registriert seit
    13.12.2012.
    Beiträge
    621

    Standard

    Ich habe das "form_wrapper" template geändert:

    PHP-Code:
    <!-- indexer::stop -->
    <div class="<?= $this->class ?> block"<?= $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>>

        <?php if ($this->headline): ?>
        <<?= $this->hl ?>><?= $this->headline ?></<?= $this->hl ?>>
    <?php endif; ?>

    <?php if ($this->eloqua==1): ?>
    <form action="<?php echo $this->eloqua_formAction?>" name="<?php echo $this->eloqua_formName?>" id="<?php echo $this->formId?>" method="<?php echo $this->method?>" enctype="<?php echo $this->enctype?>"<?php echo $this->attributes?>>
        <?php
        $pageUrl 
    $_SERVER['REQUEST_URI'];
        
    $pageName "{{page::title}}";
        
    $hubspotutk      $_COOKIE['hubspotutk']; //grab the cookie from the visitors browser.
        
    $ip_addr         $_SERVER['REMOTE_ADDR']; //IP address too.
        
    $hs_context      = array(
            
    'hutk' => $hubspotutk,
            
    'ipAddress' => $ip_addr,
            
    'pageUrl' => $pageUrl,
            
    'pageName' => $pageName
        
    );
        
    $hs_context_json json_encode($hs_context);
        
    ?>

        <?php else: ?>
        <form<?php if ($this->action): ?> action="<?= $this->action ?>"<?php endif; ?> id="<?= $this->formId ?>" method="<?= $this->method ?>" enctype="<?= $this->enctype ?>"<?= $this->attributes ?><?= $this->novalidate ?>>
            <?php endif; ?>

            <div class="formbody">
                <?php if ($this->method != 'get' && !$this->eloqua): ?>
                    <input type="hidden" name="FORM_SUBMIT" value="<?= $this->formSubmit ?>">
                    <input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">

                    <?php if ($this->maxFileSize): ?>
                        <input type="hidden" name="MAX_FILE_SIZE" value="<?= $this->maxFileSize ?>">
                    <?php endif; ?>
                <?php endif; ?>

                <?php if ($this->eloqua==1): ?>
                    <input type="hidden" name="elqFormName" value="<?php echo $this->eloqua_formName?>">
                    <input type="hidden" name="elqSiteID" value="<?php echo $this->eloqua_ID?>">
                    <input type="hidden" name="hutk" value="<?php echo $hubspotutk?>">
                    <input type="hidden" name="ipAddress" value="<?php echo $ip_addr?>">
                    <input type="hidden" name="pageUrl" value="<?php echo $pageUrl?>">
                    <input type="hidden" name="pageUrl" value="<?php echo $pageName?>">
                <?php endif; ?>
                <?= $this->hidden ?>
                <?= $this->fields ?>
            </div>
        </form>

        </div>
        <!-- indexer::continue -->
    Und bin aktuell recht verloren. -.-

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Ja, wie gesagt, wenn du willst, dass Contao vorher die Formular Daten validiert, musst du die Daten bspw. erst über einen processFormData Hook an den Drittanbieter senden.

    Eine alternative Lösung wäre, die form action nicht zu überschreiben, das Formular per AJAX an Contao abschicken und da auch wieder ggf. über einen processFormData Hook einen eigenen Response zurück geben, wenn es ein AJAX Request war - und wenn das in Ordnung war, dann sendest du das Formular nochmals per AJAX an den Drittanbieter.

    Nur mal so als Ideen.

  12. #12
    Contao-Fan
    Registriert seit
    13.12.2012.
    Beiträge
    621

    Standard

    Da AJAX absolut nicht meins ist, würde ich mal die erste Version bevorzugen, kennst du da zufällig ein ähliches Beispiel?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •