Jump to content

reCaptch w formularzu kontaktowym


bukajM

Recommended Posts

Witam

Posiadam preste 1.6.1.16

Mam problem dotyczący formularza kontaktowego, chciałbym dodać reCaptch Google, ponieważ napływa spam przez ten formularz na e-mail.
Nie wiem dokładnie jak mam się za to zabrać. Znalazłem dwa pliki: 
- ContactController.php
- contact-form.tpl

Gdzie dokładnie mam ''dokleić'' kod aby poprawnie to działało? W pierwszy znajdują się same funkcje, natomiast kiedy modyfikuje coś w drugim pliku to nic się nie zmienia.
Jest jeszcze jakiś plik odpowiedzialny za ten formularz?
Jak się za to zabrać?

 

Proszę o pomoc ;)

Edited by bukajM (see edit history)
Link to comment
Share on other sites

 

Zaloguj się do swojego serwera poprzez FTP

Odszukaj pliku contact-form.tpl powinien on być w Twoim szablonie np:
public_html -> themes -> default-bootstrap -> contact-form.tpl

Znajdź:

1
2
3
4
<div class="submit"><button id="submitMessage" class="button" name="submitMessage" type="submit">
{l s='Send'}<i class="icon-chevron-right right"></i></button></div>
Wklej powyżej
<div class="submit">

następujące linie:

1
2
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="TWÓJ KEY"></div>

Na moim przykładzie powinno to wyglądać tak:

1
2
3
4
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="6LcTJ0cUAAAAAJQ_oNG52mpYX69Un6YVjikktAau"></div>
<div class="submit"><button id="submitMessage" class="button" name="submitMessage" type="submit">
{l s='Send'}<i class="icon-chevron-right right"></i></button></div>

Zmień ContactControler.php

Plik odnajdziesz w lokalizacji controllers/front lub w lokalizacji override/controllers/front

1
2
3
4
5
6
7
8
9
10
11
if (Tools::isSubmit('submitMessage')) {
 $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
 $file_attachment = Tools::fileAttachment('fileUpload');
 $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
 $id_order = (int)$this-&gt;getOrder();
 if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
 $this-&gt;errors[] = Tools::displayError('Invalid email address.');
// Dodaj te dwie linie do kodu //
<strong> } elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {</strong>
<strong> $this-&gt;errors[] = Tools::displayError('Captcha error');</strong>
// koniec kodu //
 
Zrobiłem tak jak jest tutaj opisane, tylko po dokonaniu zmian kiedy wczytuje strone KONTAKT pokazuje się biała strona i nic się nie ładuje.
W czym tkwi problem?   Źle coś dodaje? 

Proszę o pomoc ponieważ muszę rozwiązać ten uciążliwy problem ze spamem :/
Link to comment
Share on other sites

  • 2 years later...

Działa w 1.6.1.24

w ContactController.php znajdź te 2 linie :

            if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
                $this->errors[] = Tools::displayError('Invalid email address.');
			

po nich dodaj te dwie


			} elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {
				$this->errors[] = Tools::displayError('Captcha error'); 

+ trzeba zmodyfikować contact-form.tpl w folderze szablonu

			<script src='https://www.google.com/recaptcha/api.js'></script>
			<div class="g-recaptcha" data-sitekey="tutajwklejswojsitekey"></div> 

 

ale trzeba wygenerować swój sitekey , jak to zrobić jest też opisane tutaj

Jeśli napotkasz biały błąd na stronie to trzeba włączyć tryb debugowania i sprawdzić przyczynę , opis np. tutaj

udało mi się ale zrobiłem podsumowanie aby ułatwić komuś jakby miał ten sam problem :)

Dodałem też do formularza kontaktowego dane adresowe wg tego opisu

Efekt końcowy można zobaczyć na stronie https://droplast.pl/kontakt

 

 

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...