bukajM Posted February 20, 2018 Share Posted February 20, 2018 (edited) 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 February 20, 2018 by bukajM (see edit history) Link to comment Share on other sites More sharing options...
endriu107 Posted February 20, 2018 Share Posted February 20, 2018 W pierwszym musisz dopisać obsługę captcha a w drugim po dodaniu kodu musisz wyczyścić cache sklepu. Link to comment Share on other sites More sharing options...
bukajM Posted February 20, 2018 Author Share Posted February 20, 2018 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->getOrder(); if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) { $this->errors[] = Tools::displayError('Invalid email address.'); // Dodaj te dwie linie do kodu // <strong> } elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {</strong> <strong> $this->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 More sharing options...
atomek Posted February 20, 2018 Share Posted February 20, 2018 W ContactControler.php, nie wiem czy to się tylko tak wkleiło, czy masz to w kodzie. <strong> </strong> - tego nie powino być w kodzie php -> - zamiast powinno być -> Link to comment Share on other sites More sharing options...
bukajM Posted February 20, 2018 Author Share Posted February 20, 2018 Wkleiłem bez tego Po wyczyszczeniu cache pojawiła sie strona z widocznymi reCatch natomiast wyskakuje komunikat ,,reCaptch błąd połączenia z internetem'' Link to comment Share on other sites More sharing options...
foxskav Posted February 28, 2018 Share Posted February 28, 2018 Masz zły sitekey Link to comment Share on other sites More sharing options...
kam0200 Posted December 3, 2020 Share Posted December 3, 2020 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 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now