Archives de catégorie : Prestashop

Captcha sur formulaire prestashop

Générer les clés de l’API reCAPTCHA
https://www.google.com/recaptcha/admin

Dans le fichier contact-form.tpl du répertoire du thème, ajouter le code suivant avant le bouton submit. En modifiant avec la clé générée

<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxx"></div>
 Dans le dossier /override/controllers/front/ ajouter un  fichier ContactController.php avec le contenu suivant en changeant
la clé privé :
<?php
class ContactController extends ContactControllerCore {
 public function postProcess()
 {
 if (Tools::isSubmit('submitMessage')) {
 
 // Ma clé privée
 $secret = "xxxxxxxxxxxxxxxxxxxxxx";
 // Paramètre renvoyé par le recaptcha
 $response = $_POST['g-recaptcha-response'];
 // On récupère l'IP de l'utilisateur
 $remoteip = $_SERVER['REMOTE_ADDR'];
 
 $api_url = "https://www.google.com/recaptcha/api/siteverify?secret=" 
 . $secret
 . "&response=" . $response
 . "&remoteip=" . $remoteip ;
 
 $decode = json_decode(file_get_contents($api_url), true);
 
 if ($decode['success'] != true) 
 {
 $this->errors[] = Tools::displayError('Erreur de captcha');
 
 }
 }
 parent::postProcess();
 $_POST['submitMessage'] = NULL ;
 
 }
}

Supprimer le fichier class_index.php  dans le dossier /cache/