Google reCAPTCHA

Jagar
Invité n'ayant pas de compte PHPfrance

25 janv. 2021, 17:17

Bonjour,
J'ai un site avec des formulaires ou les réponses sont directement envoyer par mail, rien en BDD, J'ai ajouter Google reCPATCHA à la fin de ses formulaire mais je n'arrive pas à le rendre obligatoire. En gros si un client envoie le formulaire sans cocher le reCAPTCHA, le formulaire s'envoie.
Comment le rendre obligatoire svp ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 janv. 2021, 19:09

Hello !

Est-ce que tu retraites les données en php avant de les envoyées par mail ? Auquel cas, il te suffit de contrôler la réponse transmise (tu peux utiliser getCurlData() pour obtenir le résultat) et de n'envoyer ton mail que lorsque tu reçois un success.

Tu peux aussi faire le contrôle en javascript avant de soumettre le formulaire, mais comme celui-ci peut être biaisé par l'utilisateur ça n'est pas forcément recommandé. Il faut dans ce cas détourner la fonction submit() du formulaire pour effectuer le contrôle avant de valider l'envoi (ça se fait bien avec du jquery).

Et en général je recommande les deux. Un premier contrôle en js pour dire tout de suite à l'utilisateur qu'il a oublié le captcha (pour le confort) et un second côté php avant de faire le traitement (pour la sécurité)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...