Jump to content
kerlin

Script recaptcha Doekia/Eolia et PS 1.6.0.14

Recommended Posts

Bonjour à tous et surtout à Doekia et Eolia :-)

Suite à mon post ici 

 où j'avais une erreur lors du remplissage du formulaire d'inscription au début de la commande, je viens demander si le script est compatible 1.6.0.

J'ai réinstallé le script donc avec ce qu'il faut dans index.php, header.tpl + class des form dans contact-form et authentication.tpl (dans ce dernier, j'ai 3 form, j'ai du coup mis la class sur les 3)

Sur le site de test, sur lequel on ne pouvait s'inscrire (sans commande) car il y avait une page not human, maintenant c'est bon pour l'inscription sans commande. Mais pas l'inscription dans le processus de commande , j'obtiens ce message TECHNICAL ERROR: unable to save account Details: Error thrown: [object Object] Text status: parsererror

Et dans la console :  Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience

 

Si je retire le script de index.php c'est bon.

 

Le site de test sur lequel j'ai laissé le script est ici

et le site en prod sur lequel j'ai retiré le script sur index.php est ici

Je vais mettre à jour le site mais c'est embêtant de laisser en attendant le prod sans recaptcha.  Que faudrait-il que je vérifie ?

 

Merci d'avance

Share this post


Link to post
Share on other sites

Sur https://backup2.etiketbio.eu/nous-contacter

Tu as a priori 2 script car on vois bien le recaptcha flasher une fois avec le message "Erreur: pour le propriétaire du site : Clé de site non valide" puis le grecaptcha

(function(){
	var googlecaptchasitekey = '6Lf2kqYUAAAAAOmtahZTo8RJ4gDnioNgwrE1bnmF';
	var trigger = function(){
		setTimeout(function(){
			$('div.g-recaptcha').remove();
			var $forms = $('form.contact-form-box,form#sendOrderMessage,form#account-creation_form');
			if ($forms.length > 0){
				var captcha = $('<div class="g-recaptcha" data-sitekey="'+ googlecaptchasitekey + '">');
				var $submit = $forms.find('#submitMessage,.button[name=submitMessage],#submitAccount');
				$submit.before(captcha);
				$submit.click(function(event){
					if ($forms.find('#g-recaptcha-response').val().length == 0) {
						event.preventDefault();
						event.stopPropagation();
						return false;
					}
				});
				try {
						window.grecaptcha.render(captcha[0]);
				} catch(e){};
			}
		},1000);
	};
	$(document).ready(trigger);
	$(document).bind('ajaxComplete', trigger);
	})();
if ( window.history.replaceState ) {
		window.history.replaceState( null, null, window.location.href );
	}
var googlecaptchasitekey = 'code publique'; /* TODO: tune this https://www.google.com/recaptcha/admin */
                        $(document).ready(function(){
                                var $forms = $('form.contact-form-box');
                                if ($forms.length > 0){
                                        var captcha = $('<div class="g-recaptcha" data-sitekey="'+ googlecaptchasitekey + '">');
                                        var $submit = $forms.find('#submitMessage');
                                        $submit.before(captcha);
                                        $submit.click(function(event){
                                                if ($forms.find('#g-recaptcha-response').val().length == 0) {
                                                        event.preventDefault();
                                                        event.stopPropagation();
                                                        return false;
                                                }
                                        });
                                }
                        });

 

sur le site de prod, c'est pareil plusieurs instance de grecaptcha

Share this post


Link to post
Share on other sites

Merci Doekia !

Sur le site de test, effectivement j'ai trouvé le script dans contact-form.tpl et l'ai retiré.  Erreur de ma part parce que j'étais tombée sur une autre page de tuto (

) ! Mais sinon, je ne comprends pas qu'il y ait plusieurs instances, il n'y a pas de module de recaptcha installé. Sur le site de test j'ai mis la class aux 3 form qu'il y a sur authentication.tpl. Cela pourrait expliquer ? 

Sur le site de prod, faut que je cherche. Je vois que la class n'a été rajoutée que sur le form new_account_form (dans authentication.tpl). A priori, je ne vois pas d'autre appel au script.

 

Par contre, comme c'est le système one page checkout qui est utilisé, ne faudrait-il pas rajouter la class au form dans order-opc-new-account.tpl ?

 

mercipour ton aide

Share this post


Link to post
Share on other sites

je viens de mettre le système de commande normal sur le site de test et là l'inscription et la commande fonctionnent

Share this post


Link to post
Share on other sites

pour tester, j'ai mis la class contact-form-box sur le form new_account_form du order-opc-new-account.tpl et remis le mode de commande en une étape. Le captcha s'affiche, mais ensuite toujours la même erreur technical

Share this post


Link to post
Share on other sites

revérifie le code que tu as mis dans index.php

Il y a forcément une coquille

Share this post


Link to post
Share on other sites

sorry, j'ai dû bosser sur un autre site dans l'intervalle. Le bug peut être lié aux API de Google Map ? Car sur la page de commande, il y a aussi un module qui affiche une carte pour visualiser où sont les points de dépôt sur Orléans (pas Mondial Relay, mais points persos)

Share this post


Link to post
Share on other sites

Bonjour, j'ai mis à jour une copie en 16.1.24, remis le captcha, et de nouveau on ne peut pas s'inscrire. J'ai donc à nouveau retiré le code du fichier index.php.

C'est bien le code de cette page qu'il faut mettre pour éviter les fausses inscriptions ?

https://shop.devcustom.net/fr/content/9-mise-en-place-captcha?content_only=1

Désolée pour cette bête question ...

Merci d'avance

Share this post


Link to post
Share on other sites
Il y a 7 heures, kerlin a dit :

j'ai mis à jour une copie en 16.1.24

Cette version de PrestaShop comporte déjà la correction de code permettant d'éviter les inscriptions en masse de comptes de ces dernière semaines.

  • Thanks 1

Share this post


Link to post
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

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More