Dodałem google recaptcha w formularzu kontaktowym, ale wartość również przesyła bez captcha. Na mojej stronie kontaktowej użyłem następujących kodów captcha:
<div class="g-recaptcha" data-sitekey="XXXXXXXXXX"></div>
<script src='https://www.google.com/recaptcha/api.js'></script>
Te dwa kody użyłem. powiedz mi, jak mogę zweryfikować captcha.
magento-1.9
form-validation
contact-form
captcha
google-api
Manish Gaur
źródło
źródło
Odpowiedzi:
Powinieneś spróbować tego kodu: korzystałem z tego na mojej stronie.
źródło
Ten skrypt używa do sprawdzania poprawności google reCaptcha jak domyślna weryfikacja Magento. skorzystaj z niego.
źródło
Moim zdaniem zaakceptowane rozwiązanie JavaScript zdecydowanie NIE jest drogą. Każdy bot, który nie używa JS (który jest w większości), po prostu ominie twoją weryfikację i dostaniesz cały spam, który próbujesz zablokować. Zawsze zawsze zawsze sprawdzaj poprawność na serwerze. Sprawdzanie poprawności JS to tylko pierwszy krok UX.
W każdym razie istnieje wiele rozwiązań, ale oto, co zadziałało w Magento 1.9 po wielu godzinach badań. To pierwotnie było oparte na powyższej odpowiedzi Mike'a, ale zamienia file_get_contents na cURL, ponieważ poprzednia funkcja zwykle powoduje błędy otoki HTTP w zależności od konfiguracji serwera.
Utwórz własny moduł, tworząc folder / aplikację / kod / lokalny / YourVendorName / ValidateCaptcha /
W nowym folderze ValidateCaptcha dodaj folder Model z plikiem Customer.php. Będzie to wykorzystane do zastąpienia podstawowego pliku Customer.php dostarczonego przez Magento.
Skopiuj i wklej ten kod:
Teraz dodaj folder etc do swojego modułu i utwórz plik config.xml w następujący sposób:
Następnie musisz dodać JS do głowy motywu. W obszarze app / design / frontend / default / YOURTHEME / template / page / html / head.phtml dodaj to na końcu. Jeśli nie masz tego pliku, skopiuj go z plików podstawowych. Nie zastępuj jednak plików podstawowych. Zawsze twórz własne!
Teraz w app / design / frontend / default / YOURTHEME / template / persistent / customer / form / register.phtml dodaj to tuż przed div zestawu przycisków u dołu:
Prawie skończone! Teraz wystarczy zarejestrować nowy moduł, tworząc aplikację / etc / modules / YourVendorName / ValidateCaptcha.xml w następujący sposób:
Zamień YourVendorName na to, co chcesz. Twoja ostateczna struktura powinna wyglądać następująco:
źródło
Użyłem recaptcha w formularzu kontaktowym.
źródło
Aby sprawdzić poprawność captcha, utwórz kontroler zapisu do zapisywania wartości formularza, a także sprawdzania poprawności.
Upewnij się, że zastąpiłeś klucz witryny i klucz tajny w powyższych przykładowych kodach.
źródło
NID,
Twój skrypt reCaptcha wygląda, jakby działał, ale wyjaśnij, czy został wprowadzony do źródła head.phtml Magento? (lub form.phtml?) do umieszczenia tuż poniżej domyślnego Magento przed PHP w kolorze zielonym, ponieważ jest to a.
Pytanie przy wpisywaniu szczególnie php to czy regularną praktyką jest wprowadzanie go po tej sekcji z komentarzami bezpośrednimi php, którą Magento umieszcza na górze większości swoich stron źródłowych szablonów, takich jak ten przykład poniżej?
Kod wyłączenia odpowiedzialności Magento tutaj w tagach php. ZAMÓW TUTAJ skrypt Snippit TUTAJ?
Co również sprawia, że ten kod weryfikujący odpowiedź reCaptcha w tym filmie jest bardziej dostosowany do struktury metod Magento: Ten samouczek używa w pierwszym wierszu linii $ reCaptcha = $ _POST ?
Alternatywne pytanie ostatnie: Co jeśli użyję wersji php, aby to zrobić, weryfikacja odpowiedzi reCaptcha czy kod php zostałby wprowadzony po górnej części domyślnego szablonu Magento w zielonej sekcji komentarzy php, jak to?
Niektóre kody nie chcę, aby komunikaty pojawiały się w interfejsie, ponieważ domyślny contactForm już daje czerwone alarmy, jeśli użytkownik nie wprowadzi wszystkich informacji pod każdym polem, chcę tylko, aby reCaptcha działało dla tego contactForm. Ale w sposób zrozumiały dla przyszłego użytku. Twoja droga jest tworzona przez Ciebie jako programistę lub programistę?
źródło