Vérification reCAPTCHA
Résolu/Fermé
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
-
Modifié le 20 juin 2020 à 20:32
info_php Messages postés 10 Date d'inscription samedi 20 juin 2020 Statut Membre Dernière intervention 17 juillet 2020 - 20 juin 2020 à 22:58
info_php Messages postés 10 Date d'inscription samedi 20 juin 2020 Statut Membre Dernière intervention 17 juillet 2020 - 20 juin 2020 à 22:58
6 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
20 juin 2020 à 20:34
20 juin 2020 à 20:34
Bonjour
Que t'affiches tes var_dump ?
Tu parles d'envoyer... mais je ne vois rien d'autre que la vérification du captcha dans le code que tu nous as posté ...
NB: Pour poster ton code correctement sur le forum, tu dois utiliser les BALISES DE CODE.
Explications à lire ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
Que t'affiches tes var_dump ?
Tu parles d'envoyer... mais je ne vois rien d'autre que la vérification du captcha dans le code que tu nous as posté ...
NB: Pour poster ton code correctement sur le forum, tu dois utiliser les BALISES DE CODE.
Explications à lire ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
20 juin 2020 à 20:40
20 juin 2020 à 20:40
-> Que t'affiches tes var_dump ?
Bah en ft rien, c'est à dire que je fasse le recaptcha ou pas il n'y a rien, après j'ai juste suivi une vidéo youtube qui expliquer comment intégrer un recaptcha
-> Tu parles d'envoyer... mais je ne vois rien d'autre que la vérification du captcha dans le code que tu nous as posté ...
C'est parce que j'ai juste mis le code relatif à la vérification du reCAPTCHA, ne t'inquiète pas dans mon fichier, il y a bien la parti envoie
Bah en ft rien, c'est à dire que je fasse le recaptcha ou pas il n'y a rien, après j'ai juste suivi une vidéo youtube qui expliquer comment intégrer un recaptcha
-> Tu parles d'envoyer... mais je ne vois rien d'autre que la vérification du captcha dans le code que tu nous as posté ...
C'est parce que j'ai juste mis le code relatif à la vérification du reCAPTCHA, ne t'inquiète pas dans mon fichier, il y a bien la parti envoie
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
20 juin 2020 à 20:45
20 juin 2020 à 20:45
Je ne m'inquiète pas ..... mais je suppute que tu ne vois pas le résultat de tes captcha à cause d'une redirection de page ou autre truc du genre.
En gros.... pour qu'on puisse te venir en aide.. il faut que tu nous postes l'intégralité de ton code.
En gros.... pour qu'on puisse te venir en aide.. il faut que tu nous postes l'intégralité de ton code.
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
Modifié le 20 juin 2020 à 21:05
Modifié le 20 juin 2020 à 21:05
ah d'accord, alors voici tout mon code php de cette page :
<?php session_start(); ?> <?php if(!empty($_POST)) { $errors=array(); require_once 'base_de_donnees.php'; $password_length = $_POST['password']; // Nom // if(empty($_POST['nom']) || !preg_match('/^[a-zA-Zéèàêëôüîï \- ]*-?[a-zA-Zéèàêëôüîï ]*+$/', $_POST['nom'])) { $nom_erreur = $errors['nom'] ="Votre nom est incorrect"; } // Prénom // if(empty($_POST['prenom']) || !preg_match('/^[a-zA-Zéèàêëôüîï ]*-?[a-zA-Zéèàêëôüîï ]*+$/', $_POST['prenom'])) { $prenom_erreur = $errors['prenom'] ="Votre prénom est incorrect"; } //E-mail // if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $email_erreur = $errors['email'] = "Votre e-mail n'est pas valide"; } else { $req = $pdo->prepare('SELECT id FROM membre WHERE email = ?'); $req->execute([$_POST['email']]); $user = $req->fetch(); if($user) { $email_erreur = $errors['email'] = 'Cette adresse e-mail est déjà associé à un compte'; } } // Mot de passe // if(empty($_POST['password'])) { $password_erreur = $errors['password']="Veuillez saisir un mot de passe"; } if(!empty($_POST['password']) && $_POST['password'] != $_POST['password_confirm']) { $password_erreur = $errors['password']="Veuillez saisir un mot de passe identique"; } if(!empty($_POST['password'] AND (strlen($password_length)<6))) { $password_erreur = $errors['password']="Votre mot de passe est trop court"; } // reCAPTCHA // require('recaptcha/autoload.php'); if(isset($_POST['submitpost'])) { if(isset($_POST['g-recaptcha-response'])) { $recaptcha = new \ReCaptcha\ReCaptcha('cle secrète'); $resp = $recaptcha->setExpectedHostname('recaptcha-demo.appspot.com')->verify($_POST['g-recaptcha-response']); if ($resp->isSuccess()) { var_dump('Captcha Valide'); } else { $errors = $resp->getErrorCodes(); var_dump('Captcha Invalide'); var_dump($errors); } } if(!isset($_POST['g-recaptcha-response']) AND empty($_POST['g-recaptcha-response'])) { // var_dump('Captcha non rempli'); $errors['g-recaptcha-response']="Veuillez confirmer que vous n'êtes pas un robot"; } } // Requête MySQL // if(empty($errors)) { $req = $pdo->prepare("INSERT INTO membre SET nom = ?, prenom = ?, email = ?, password = ?, confirmation_token = ?"); $password = password_hash($_POST['password'], PASSWORD_BCRYPT); $token = str_random(60); $req->execute([$_POST['nom'], $_POST['prenom'], $_POST['email'], $password, $token]); $user_id = $pdo->lastInsertId(); header('Location: login.php'); exit(); } } ?>
yg_be
Messages postés
23391
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 décembre 2024
1 556
>
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
20 juin 2020 à 20:58
20 juin 2020 à 20:58
peux-tu correctement utiliser les balises de code, comme expliqué ici: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
>
yg_be
Messages postés
23391
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 décembre 2024
20 juin 2020 à 21:05
20 juin 2020 à 21:05
ah oui excusez moi, je viens de le mettre correctement ^^
yg_be
Messages postés
23391
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 décembre 2024
1 556
>
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
20 juin 2020 à 21:09
20 juin 2020 à 21:09
veux-tu dire que ton code ne génère pas 'Captcha Invalide'?
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
Modifié le 20 juin 2020 à 22:09
Modifié le 20 juin 2020 à 22:09
Tu n'as pas appliqué tout ce qui est indiqué dans le lien que je t'ai donné...
Donc, grosso modo, voici ton code remis au propre
Par contre, tu ne m'as toujours pas indiqué ce qu'affiche la console de ton navigateur...
Si la variable de recaptcha n'est pas présente dans la variable $_POST .. c'est que le souci se situe au niveau du code javascript... pas au niveau du code php.
Donc, grosso modo, voici ton code remis au propre
<?php //-------------------------------------------------------------// //démarrage Session //-------------------------------------------------------------// session_start(); //-------------------------------------------------------------// //affichage des erreurs PHP //-------------------------------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-------------------------------------------------------------// //include/require des fichiers //-------------------------------------------------------------// require_once 'base_de_donnees.php'; require('recaptcha/autoload.php'); //-------------------------------------------------------------// //récupération PROPRE des variables AVANT de les utiliser //-------------------------------------------------------------// $nom = !empty($_POST['nom']) ? trim($_POST['nom']) : ""; $prenom = !empty($_POST['prenom']) ? trim($_POST['prenom']) : ""; $email = !empty($_POST['email']) ? trim($_POST['email']) : ""; $password = !empty($_POST['password']) ? trim($_POST['password']) : ""; $password_confirm = !empty($_POST['password_confirm']) ? trim($_POST['password_confirm']) : ""; $recaptcharesponse = !empty($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : NULL; //autre variables $password_length = strlen($password); $errors = array(); //-------------------------------------------------------------// // Fonctions //-------------------------------------------------------------// function checkString($str){ return empty($str) || !preg_match('/^[a-zA-Zéèàêëôüîï \- ]*-?[a-zA-Zéèàêëôüîï ]*+$/', $str); } function checkMail($email){ return empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL); } function getMembreByMail($email){ global $pdo; $sql = 'SELECT id FROM membre WHERE email = ?'; $datas = array($email); try{ $req = $pdo->prepare($sql); $req->execute($datas); $user = $req->fetch(); return $user; }catch(Exception $e){ echo "Erreur ". $e->getMessage(); die(); } } function addMember($nom, $prenom, $email, $password) { global $pdo; $password = password_hash($password, PASSWORD_BCRYPT); $token = str_random(60); $sql = "INSERT INTO membre (nom, prenom , email , password , confirmation_token) VALUES (? , ? , ? , ? , ? )"; $datas = array($nom, $prenom, $email, $password, $token); try{ $req = $pdo->prepare($sql); $req->execute($datas); $user_id = $pdo->lastInsertId(); return $user_id ; }catch(Exception $e){ echo "Erreur ". $e->getMessage(); die(); } } //-------------------------------------------------------------// // Traitement du submit du formulaire //-------------------------------------------------------------// if(!empty($_POST)){ if(! checkString($nom)) { $errors['nom'] = "Votre nom est incorrect"; } // Prénom // if(!checkString($prenom)) { $errors['prenom'] = "Votre prénom est incorrect"; } //E-mail // if(!checkMail($email){ $errors['email'] = "Votre e-mail n'est pas valide"; } else { $user = getMembreByMail($email); if($user){ $errors['email'] = 'Cette adresse e-mail est déjà associé à un compte'; } } // Mot de passe // if(empty($password)) { $errors['password'] = "Veuillez saisir un mot de passe"; } if(empty($password_confirm)) { $errors['password_confirm'] = "Veuillez confirmer votre mot de passe"; } if(!empty($password) && $password != $password_confirm){ $errors['password'] = "Veuillez saisir un mot de passe identique"; } if( $password_length < 6 ){ $errors['password'] = "Votre mot de passe est trop court"; } // reCAPTCHA // if($recaptcharesponse){ $recaptcha = new \ReCaptcha\ReCaptcha('cle secrète'); $resp = $recaptcha->setExpectedHostname('recaptcha-demo.appspot.com')->verify($recaptcharesponse); if ($resp->isSuccess()) { var_dump('Captcha Valide'); } else { $errors['recaptcha'] = $resp->getErrorCodes(); var_dump('Captcha Invalide'); var_dump($errors); } } // Requête MySQL // if(empty($errors)) { $user_id = addMember($nom, $prenom, $email, $password); if($user_id){ //header('Location: login.php'); exit(); }else{ echo "Erreur lors de l'ajout en base de données."; exit; } }else{ var_dump($errors); } }
Par contre, tu ne m'as toujours pas indiqué ce qu'affiche la console de ton navigateur...
Si la variable de recaptcha n'est pas présente dans la variable $_POST .. c'est que le souci se situe au niveau du code javascript... pas au niveau du code php.
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
20 juin 2020 à 22:29
20 juin 2020 à 22:29
Je viens de remettre le code que vous m'avez fait (merci beaucoup d'ailleurs), cependant j'ai une erreur à la ligne 99 :
( ! ) Parse error: syntax error, unexpected ';' in C:\wamp64\www\site_e_commerce\register.php on line 99
-> Par contre, tu ne m'as toujours pas indiqué ce qu'affiche la console de ton navigateur...
Si la variable de recaptcha n'est pas présente dans la variable $_POST .. c'est que le souci se situe au niveau du code javascript... pas au niveau du code php.
Comment fait-on s'il vous plait ?
(je suis débutant)
( ! ) Parse error: syntax error, unexpected ';' in C:\wamp64\www\site_e_commerce\register.php on line 99
-> Par contre, tu ne m'as toujours pas indiqué ce qu'affiche la console de ton navigateur...
Si la variable de recaptcha n'est pas présente dans la variable $_POST .. c'est que le souci se situe au niveau du code javascript... pas au niveau du code php.
Comment fait-on s'il vous plait ?
(je suis débutant)
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
20 juin 2020 à 22:32
20 juin 2020 à 22:32
Ligne 98, manque une parenthèse.
en ce qui concerne la console JavaScript du navigateur, pour l'ouvrir, en général, il suffit d'appuyer sur la touche F12.
tu trouveras de nombreux tutos sur le net à ce sujet.
en ce qui concerne la console JavaScript du navigateur, pour l'ouvrir, en général, il suffit d'appuyer sur la touche F12.
tu trouveras de nombreux tutos sur le net à ce sujet.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
Modifié le 20 juin 2020 à 22:56
Modifié le 20 juin 2020 à 22:56
ah oui, en effet
c'est bon j'ai trouvé, c'était un problème de php
Maintenant tout fonctionne comme je veux ^^
Merci beaucoup de votre aide !!
c'est bon j'ai trouvé, c'était un problème de php
Maintenant tout fonctionne comme je veux ^^
Merci beaucoup de votre aide !!
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
20 juin 2020 à 22:54
20 juin 2020 à 22:54
Ce message là ne sont pas bloquant.
Tu as bien afficher la page qui contient ton formulaire ?
Tu pourrais afficher le code source de cette page en appuyant sur les touches contrôle et u
Et nous coller le code ainsi obtenu sur le forum.
et donc vu que tu es parti à regarder dans la console je suppose que ta variable poste ne contient pas le caprcha... Oui, non ??
Tu as bien afficher la page qui contient ton formulaire ?
Tu pourrais afficher le code source de cette page en appuyant sur les touches contrôle et u
Et nous coller le code ainsi obtenu sur le forum.
et donc vu que tu es parti à regarder dans la console je suppose que ta variable poste ne contient pas le caprcha... Oui, non ??
info_php
Messages postés
10
Date d'inscription
samedi 20 juin 2020
Statut
Membre
Dernière intervention
17 juillet 2020
20 juin 2020 à 22:58
20 juin 2020 à 22:58
c'est bon j'ai trouvé, c'était un problème de php
Maintenant tout fonctionne comme je veux ^^
Merci beaucoup de votre aide !!
Maintenant tout fonctionne comme je veux ^^
Merci beaucoup de votre aide !!