Ich habe das Google Recaptcha im Kontaktformular hinzugefügt, aber der Wert wird auch ohne Captcha übermittelt. Ich habe auf meiner Kontaktseite folgende Codes für Captcha verwendet:
<div class="g-recaptcha" data-sitekey="XXXXXXXXXX"></div>
<script src='https://www.google.com/recaptcha/api.js'></script>
Diese beiden Codes habe ich verwendet. Bitte sagen Sie mir, wie ich Captcha validieren kann.
magento-1.9
form-validation
contact-form
captcha
google-api
Manish Gaur
quelle
quelle
Antworten:
Sie sollten diesen Code ausprobieren: Ich habe ihn auf meiner Website verwendet.
quelle
Dieses Skript verwendet für die Validierung Google ReCaptcha wie eine Standardvalidierung von Magento. bitte benutze es.
quelle
Ich habe Recaptcha in Kontaktform verwendet.
quelle
Die oben akzeptierte JavaScript-Lösung ist meiner Meinung nach definitiv NICHT der richtige Weg. Jeder Bot, der kein JS verwendet (was die meisten von ihnen sind), umgeht einfach Ihre Validierung und Sie erhalten all den Spam, den Sie blockieren möchten. Immer immer immer auf dem Server validieren. Die JS-Validierung ist nur ein erster UX-Schritt.
Wie auch immer, es gibt mehrere Lösungen, aber hier ist, was nach vielen Stunden Recherche für mich in Magento 1.9 funktioniert hat. Dies basiert ursprünglich auf Mikes Antwort oben, tauscht jedoch file_get_contents gegen cURL aus, da die vorherige Funktion abhängig von Ihrer Serverkonfiguration normalerweise http-Wrapper-Fehler verursacht.
Erstellen Sie Ihr eigenes Modul, indem Sie einen Ordner / app / code / local / YourVendorName / ValidateCaptcha / erstellen.
Fügen Sie in Ihrem neuen ValidateCaptcha-Ordner einen Modellordner mit einer Customer.php-Datei hinzu. Dies wird verwendet, um die von Magento bereitgestellte Customer.php-Kerndatei zu überschreiben.
Kopieren Sie diesen Code und fügen Sie ihn ein:
Fügen Sie nun Ihrem Modul einen Ordner etc hinzu und erstellen Sie eine config.xml mit den folgenden Angaben:
Als nächstes müssen Sie das JS zu Ihrem Themenkopf hinzufügen. Fügen Sie dies unter app / design / frontend / default / YOURTHEME / template / page / html / head.phtml am Ende hinzu. Wenn Sie diese Datei nicht haben, kopieren Sie sie aus den Basisdateien. Überschreiben Sie jedoch keine Basisdateien. Mach immer deine eigenen!
Fügen Sie dies jetzt in app / design / frontend / default / YOURTHEME / template / persistent / customer / form / register.phtml direkt vor dem Button-Set div unten hinzu:
Fast fertig! Registrieren Sie jetzt einfach Ihr neues Modul, indem Sie eine App / etc / modules / YourVendorName / ValidateCaptcha.xml mit den folgenden Angaben erstellen:
Ersetzen Sie YourVendorName durchgehend durch das, was Sie möchten. Ihre endgültige Struktur sollte ungefähr so aussehen:
quelle
Erstellen Sie zum Validieren von Captcha einen Speichercontroller zum Speichern Ihrer Formularwerte und der Validierung.
Stellen Sie sicher, dass Sie den Site-Schlüssel und den geheimen Schlüssel in den obigen Beispielcodes ersetzt haben.
quelle
NID,
Ihr reCaptcha-Skript-Snippit sieht aus, als würde es funktionieren, aber stellen Sie klar, ob es in die Quelle head.phtml des Magento eingegeben wurde. (oder die form.phtml?), die direkt unter dem Magento-Standard vor PHP in grüner Schrift platziert werden soll, da es a ist.
Frage bei der Eingabe von besonders PHP: Ist es üblich, nach diesem Abschnitt mit sofortigen PHP-Kommentaren einzugeben, den Magento für die meisten seiner Vorlagenquellenseiten wie in diesem Beispiel unten oben platziert?
Magento Disclaimer Code hier in PHP-Tags. PLACE THE RECAPTCHA HIER Snippit-Skript hier?
Was macht diesen reCaptcha-Antwortüberprüfungscode in diesem Video unten besser für die Methodenstruktur von Magento geeignet: In diesem Tutorial wird in der ersten Zeile die Zeile $ reCaptcha = $ _POST verwendet ?
Letzte Frage Alternative: Was ist, wenn ich die PHP- Version verwende, um diese reCaptcha-Antwortüberprüfung durchzuführen? Würde der PHP-Code-Snippit nach dem grünen Kommentarbereich der obersten Magento-Standardvorlage von PHP wie diesem eingegeben?
Einige Codes, für die keine Nachrichten im Front-End angezeigt werden sollen, da die Standard-ContactForm bereits rote Warnungen ausgibt, wenn der Benutzer nicht alle Informationen eingibt, die unter den einzelnen Feldern angezeigt werden. Ich möchte nur, dass reCaptcha für diese ContactForm funktioniert. Aber auf eine Weise, die ich auch für die zukünftige Verwendung verstehen werde. Ihr Weg wird von Ihnen als Entwickler oder Programmierer erstellt?
quelle