ReCaptcha et PHP
Fermé
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
-
Modifié le 22 avril 2017 à 23:38
valttt Messages postés 279 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 27 octobre 2024 - 2 mai 2017 à 13:12
valttt Messages postés 279 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 27 octobre 2024 - 2 mai 2017 à 13:12
A voir également:
- Merci de cocher le captcha
- Easy php - Télécharger - Divers Web & Internet
- Bouton php - Forum PHP
- Protection par recaptcha - Forum Réseaux sociaux
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
24 réponses
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 1 mai 2017 à 17:24
Modifié le 1 mai 2017 à 17:24
J'ai supprimé
1) Je ne reçois pas de mail alors qu'un message me dit le contraire (avec ou sans avoir coché le captcha)
2) Ou dois-je mettre le code
Voici mon code:
if(isset($_POST['submit']) && !empty($_POST['submit'])):
else:
$errMsg = '';
$succMsg = '';
endif;
1) Je ne reçois pas de mail alors qu'un message me dit le contraire (avec ou sans avoir coché le captcha)
2) Ou dois-je mettre le code
print_r($responseData);?
Voici mon code:
<?php
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
empty($_POST['phone']) ||
empty($_POST['sex']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "Pas de données envoyées!";
return false;
}
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])):
//your site secret key
$secret = 'ma clé secrète';
//get verify response data
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success):
//contact form submission code
$name = $_POST['name'];
$sex = $_POST['sex'];
$phone = $_POST['phone'];
$email_address = $_POST['email'];
$message = $_POST['message'];
$to = 'mon adresse mail';
$email_subject = "site web";
$email_body = "Site web.\n\n$sex $name\n\nEmail: $email_address\n\nTéléphone: $phone\n\nMessage:\n$message";
$headers = "From: robot@adresse du site web\n";
mail($to,$email_subject,$email_body,$headers);
return true;
else:
$errMsg = 'Erreur de vérification, veuillez réessayer.';
endif;
else:
$errMsg = 'Merci de cocher la case.';
endif;
?>
Utilisateur anonyme
23 avril 2017 à 00:16
23 avril 2017 à 00:16
Alors ça se voit que tu débutes, car le PHP génère du HTMl, enfin plus précisément il génère du texte, qui une fois envoyé, et interprété par défaut par le navigateur comme du HTML, à moins que l'header est changé.
Donc il suffit de coller les balises comme indiquer sur Google, si tu ne sais pas comment faire, montre nous ton code pour qu'on te l'explique.
Donc il suffit de coller les balises comme indiquer sur Google, si tu ne sais pas comment faire, montre nous ton code pour qu'on te l'explique.
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 23 avril 2017 à 08:52
Modifié le 23 avril 2017 à 08:52
Merci beaucoup ZeNairolf, mais avant d'avoir posé la question, j'ai fait quelques recherches avant (c'est la moindre des choses).
Effectivement, je débute.
Mon soucis est que dans ma page, je n'ai pas de balise <head>, d’où mon soucis pour mettre les lignes de codes de proposés par google...
Effectivement, je débute.
Mon soucis est que dans ma page, je n'ai pas de balise <head>, d’où mon soucis pour mettre les lignes de codes de proposés par google...
<?php
include_once('templates/page_head.php');
?>
<section class="contact">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="contact-form">
<div id="success" class="col-md-10"></div>
<form name="contactForm" id="contactForm" method="POST" action="mail/mail.php">
<div class="col-md-6">
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Civilité</label>
<select class="form-control" name="sex" id="sex">
<option value="Mr">Monsieur</option>
<option value="Mm">Madame</option>
<option value="Melle">Mademoiselle</option>
</select>
</div>
<div class="form-group col-xs-12">
<label>Nom</label>
<input type="text" name="name" class="form-control" placeholder="Votre Nom" id="name" required>
</div>
</div>
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Email</label>
<input type="email" name="email" class="form-control" placeholder="Votre Adresse Mail" id="email" required>
</div>
</div>
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Téléphone</label>
<input type="text" name="phone" class="form-control" placeholder="Votre téléphone" id="phone" required>
</div>
</div>
</div>
<div class="col-md-6">
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Message</label>
<textarea rows="12" name="message" class="form-control" placeholder="Votre Message" id="message" required></textarea>
</div>
</div>
</div><br>
<div class="row">
<div class="form-group col-xs-11 text-right">
<button type="submit" id="btnSubmit" class="btn btn-info">Envoyer</button>
</div>
</div>
<br>
</form>
</div>
</div>
</div>
</div>
</section>
<?php
include_once('templates/page_footer.php');
?>
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
23 avril 2017 à 08:55
23 avril 2017 à 08:55
Bonjour,
Le script JS de Google est à insérer dans la partie <head> de ta page, qu'elle soit en PHP ou en HTML.
Ensuite, l'autre code est à insérer dans la partie <form> de ton formulaire, qui est probablement en HTML, même au sein d'une page PHP.
Le script JS de Google est à insérer dans la partie <head> de ta page, qu'elle soit en PHP ou en HTML.
Ensuite, l'autre code est à insérer dans la partie <form> de ton formulaire, qui est probablement en HTML, même au sein d'une page PHP.
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
23 avril 2017 à 09:01
23 avril 2017 à 09:01
Le temps d'écrire ma réponse, tu as fourni ton code.
Il faut commencer par apprendre les bases, c'est à dire la structure d'une page HTML ou en PHP.
Il faut commencer par apprendre les bases, c'est à dire la structure d'une page HTML ou en PHP.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 23 avril 2017 à 09:17
Modifié le 23 avril 2017 à 09:17
Ce n'est pas moi qui ai créer mon site web, mais mon ami webmaster qui est aujourd'hui décédé. Je me trouve donc tout seul dans ma campagne pour essayer d'apporter des modifs à mon site.
Effectivement, il y a bien une balise head dans templates/page_head.php.
Je vais apporter les modifications et reviens vers vous si cela ne fonctionne pas.
Merci pour votre aide...
Effectivement, il y a bien une balise head dans templates/page_head.php.
Je vais apporter les modifications et reviens vers vous si cela ne fonctionne pas.
Merci pour votre aide...
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 23 avril 2017 à 11:06
Modifié le 23 avril 2017 à 11:06
Je reviens vers vous après avoir mis les codes indiqué par google SAUF celui de la réponse car je ne comprends pas.
1) J'ai mis le code <script src='https://www.google.com/recaptcha/api.js'></script> avant la balise </head>
2) J'ai mis le code <div class="g-recaptcha" data-sitekey="ma clé publique"></div> à l'emplacement ou je veux voir le captcha à l'intérieur de la balise <form>
=> le captcha fonctionne.
N'ayant pas utiliser de réponse (même si la captcha fonctionne), je reçois le message même si je n'ai pas coché la case (et c'est normal).
Pourriez-vous m'expliquer comment mettre le code réponse dans mon fichier car je ne comprends pas (https://translate.google.fr/translate?sl=en&tl=fr&js=y&prev=_t&hl=fr&ie=UTF-8&u=https%3A%2F%2Fdevelopers.google.com%2Frecaptcha%2Fdocs%2Fverify&edit-text=&act=url%29 ?
Merci encore pour votre aide ;-)
1) J'ai mis le code <script src='https://www.google.com/recaptcha/api.js'></script> avant la balise </head>
2) J'ai mis le code <div class="g-recaptcha" data-sitekey="ma clé publique"></div> à l'emplacement ou je veux voir le captcha à l'intérieur de la balise <form>
=> le captcha fonctionne.
N'ayant pas utiliser de réponse (même si la captcha fonctionne), je reçois le message même si je n'ai pas coché la case (et c'est normal).
Pourriez-vous m'expliquer comment mettre le code réponse dans mon fichier car je ne comprends pas (https://translate.google.fr/translate?sl=en&tl=fr&js=y&prev=_t&hl=fr&ie=UTF-8&u=https%3A%2F%2Fdevelopers.google.com%2Frecaptcha%2Fdocs%2Fverify&edit-text=&act=url%29 ?
Merci encore pour votre aide ;-)
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 23 avril 2017 à 15:31
Modifié le 23 avril 2017 à 15:31
Je précise qu'il faut que le mail soit envoyé qui SI le captcha à été validé...
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
26 avril 2017 à 08:25
26 avril 2017 à 08:25
Bonjour à tous et toutes,
Une idée sur mon problème ?
Merci
Une idée sur mon problème ?
Merci
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
27 avril 2017 à 15:07
27 avril 2017 à 15:07
Bonjour à tous et toutes,
Y a t-il quelqu'un qui puisse m'aider ?
Merci
Y a t-il quelqu'un qui puisse m'aider ?
Merci
Utilisateur anonyme
27 avril 2017 à 18:01
27 avril 2017 à 18:01
Normalement il y a un champ g-recaptcha-response dans ta variable $_POST, si je me trompe pas la variable c'est $_POST["g-recaptcha-response"], il faut vérifier si il est bon.
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
28 avril 2017 à 21:47
28 avril 2017 à 21:47
Merci ZeNairolf, c'est bien mon problème:
Comment faire pour vérifier et valider l'envoi que si et seulement si le captcha est bien validé.
Voici mon code d'origine (sans recaptcha):
J'ai essayer plusieurs chose mais mon mail n'est même plus envoyé maintenant.
Voici le code auquel j'ai apporter modifications:
Auriez-vous une idée sur les erreurs rencontrés (pas d'envoi et info comme quoi le message est bien envoyé même si le captcha n'est pas coché) ?
Mil merci pour votre aide...
Comment faire pour vérifier et valider l'envoi que si et seulement si le captcha est bien validé.
Voici mon code d'origine (sans recaptcha):
<?php
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
empty($_POST['phone']) ||
empty($_POST['sex']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "Pas de données envoyées!";
return false;
}
$name = $_POST['name'];
$sex = $_POST['sex'];
$phone = $_POST['phone'];
$email_address = $_POST['email'];
$message = $_POST['message'];
$to = 'mon adresse mail';
$email_subject = "Envoi depuis le site";
$email_body = "Site web.\n\n$sex $name\n\nEmail: $email_address\n\nTéléphone: $phone\n\nMessage:\n$message";
$headers = "From: robot@adresse de mon site web\n";
mail($to,$email_subject,$email_body,$headers);
return true;
?>
J'ai essayer plusieurs chose mais mon mail n'est même plus envoyé maintenant.
Voici le code auquel j'ai apporter modifications:
<?php
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
empty($_POST['phone']) ||
empty($_POST['sex']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "Pas de données envoyées!";
return false;
}
if(isset($_POST['submit']) && !empty($_POST['submit'])):
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])):
//your site secret key
$secret = 'ma clé secrète';
//get verify response data
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success):
//contact form submission code
$name = $_POST['name'];
$sex = $_POST['sex'];
$phone = $_POST['phone'];
$email_address = $_POST['email'];
$message = $_POST['message'];
$to = 'mon adresse mail';
$email_subject = "Envoi depuis le site";
$email_body = "Site web.\n\n$sex $name\n\nEmail: $email_address\n\nTéléphone: $phone\n\nMessage:\n$message";
$headers = "From: robot@adresse de mon site web\n";
mail($to,$email_subject,$email_body,$headers);
return true;
else:
$errMsg = 'Erreur de vérification, veuillez réessayer.';
endif;
else:
$errMsg = 'Merci de cocher la case.';
endif;
else:
$errMsg = '';
$succMsg = '';
endif;
?>
Auriez-vous une idée sur les erreurs rencontrés (pas d'envoi et info comme quoi le message est bien envoyé même si le captcha n'est pas coché) ?
Mil merci pour votre aide...
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
1 mai 2017 à 14:38
1 mai 2017 à 14:38
tu as choisi d'utiliser $errMsg et $succMsg.
avant cela, en cas d'erreur, tu faisais:
pourquoi changer?
avant cela, en cas d'erreur, tu faisais:
echo "Pas de données envoyées!"; return false;
pourquoi changer?
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
1 mai 2017 à 15:36
1 mai 2017 à 15:36
ceci me semble superflu:
if(isset($_POST['submit']) && !empty($_POST['submit'])): else: $errMsg = ''; $succMsg = ''; endif;
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
1 mai 2017 à 10:05
1 mai 2017 à 10:05
Personne pour me venir en aide ? ;-)
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
Modifié le 1 mai 2017 à 10:35
Modifié le 1 mai 2017 à 10:35
bonjour, qu'affiche le php?
peux-tu faire
peux-tu faire
print_r($responseData);?
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 1 mai 2017 à 17:02
Modifié le 1 mai 2017 à 17:02
Bonjour,
Merci pour ton aide.
Les msg se sont croisés.
J'ai changé les codes car j'ai essayer 2 tutos différents sur le web.
Il faut que je mette
Merci
Merci pour ton aide.
Les msg se sont croisés.
J'ai changé les codes car j'ai essayer 2 tutos différents sur le web.
Il faut que je mette
print_r($responseData);dans ma page php ? Si oui, à quel endroit ?
Merci
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
1 mai 2017 à 17:04
1 mai 2017 à 17:04
je pense que tu dois suivre ma suggestion en #16.
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 1 mai 2017 à 18:39
Modifié le 1 mai 2017 à 18:39
Merci yg_be,
Désolé mais mon ami webmaster qui à fait le site web est décédé. C'est pour cela que j’essaie de le faire évoluer tant bien que mal et malgré le trop peu de connaissance dans ce domaine.
J'ai répondu "J'ai changé les codes car j'ai essayer 2 tutos différents sur le web".
Je reçois le message "Votre message a bien été envoyé. Je reviendrai vers vous dans les plus brefs délais."
Ce message viens du fichier "script.js".
Qu'est-ce que fais-tu ensuite (ailleurs) avec $errMsg? Je ne sais pas... :-(
Désolé mais mon ami webmaster qui à fait le site web est décédé. C'est pour cela que j’essaie de le faire évoluer tant bien que mal et malgré le trop peu de connaissance dans ce domaine.
J'ai répondu "J'ai changé les codes car j'ai essayer 2 tutos différents sur le web".
Je reçois le message "Votre message a bien été envoyé. Je reviendrai vers vous dans les plus brefs délais."
Ce message viens du fichier "script.js".
Qu'est-ce que fais-tu ensuite (ailleurs) avec $errMsg? Je ne sais pas... :-(
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
1 mai 2017 à 19:17
1 mai 2017 à 19:17
Je propose d'éliminer les $errMsg, et de les remplacer par la logique précédente (qui, je suppose, fonctionnait bien):
donc, remplace (deux fois)
par
Tant que tu y es, ajoute
donc, remplace (deux fois)
$errMsg = 'message d'erreur';
par
echo "message d'erreur"; return false;
Tant que tu y es, ajoute
print_r($responseData); quand tu arrives à l'erreur "Erreur de vérification, veuillez réessayer.". Cela permettra d'e savoir plus si cela se produit.
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
>
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 mai 2017 à 19:27
1 mai 2017 à 19:27
Merci, je fais les essais ;-)
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
1 mai 2017 à 19:37
1 mai 2017 à 19:37
Je n'ai strictement aucun retour.
Ni mail, ni affichage du $responseData.
Néanmoins, il faut savoir que le captcha fonctionne bien car tant que je n'ai pas cocher la case, et cocher les bonnes images, celui n'affiche pas sa validation avec son encoche verte.
Ni mail, ni affichage du $responseData.
Néanmoins, il faut savoir que le captcha fonctionne bien car tant que je n'ai pas cocher la case, et cocher les bonnes images, celui n'affiche pas sa validation avec son encoche verte.
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
1 mai 2017 à 19:53
1 mai 2017 à 19:53
ajoute
teste à nouveau, et envoie ton code modifié.
le problème est peut-être causé par les modifications que tu as faites dans l'autre fichier, comme tu expliques en #7.
peux-tu partager ce fichier avant et après tes modifications?
quand tu écris "Je n'ai strictement aucun retour", veux-tu dire que c'est comme si rien ne se passait quand tu cliques sur un bouton (quel bouton)?
echo "email envoyé";avant
return true;
teste à nouveau, et envoie ton code modifié.
le problème est peut-être causé par les modifications que tu as faites dans l'autre fichier, comme tu expliques en #7.
peux-tu partager ce fichier avant et après tes modifications?
quand tu écris "Je n'ai strictement aucun retour", veux-tu dire que c'est comme si rien ne se passait quand tu cliques sur un bouton (quel bouton)?
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 1 mai 2017 à 20:27
Modifié le 1 mai 2017 à 20:27
"email envoyé" ne s'affiche pas.
En fait rien n'a changé...
Voici le code ajouter au <head> de mon formulaire:
Voici le code ajouter au <form> de mon formulaire:
Voici le code coté serveur:
Seul ce qui est en gras à été ajouter par rapport au fichier d'origine (et fonctionnel)
En fait rien n'a changé...
Voici le code ajouter au <head> de mon formulaire:
<script src='https://www.google.com/recaptcha/api.js'></script>
Voici le code ajouter au <form> de mon formulaire:
<div class="g-recaptcha" data-sitekey="ma clé publique"></div>
Voici le code coté serveur:
<?php
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
empty($_POST['phone']) ||
empty($_POST['sex']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "Pas de données envoyées!";
return false;
}
//contact form submission code
$name = $_POST['name'];
$sex = $_POST['sex'];
$phone = $_POST['phone'];
$email_address = $_POST['email'];
$message = $_POST['message'];
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])):
//your site secret key
$secret = 'ma clé secrète';
//get verify response data
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success):
//Envoi du mail
$to = 'Mon adresse mail';
$email_subject = "Site web";
$email_body = "Site web.\n\n$sex $name\n\nEmail: $email_address\n\nTéléphone: $phone\n\nMessage:\n$message";
$headers = "From: robot@adresse de mon site web\n";
mail($to,$email_subject,$email_body,$headers);
echo "email envoyé";
return true;
else:
print_r($responseData);
return false;
endif;
else:
echo "Merci de cocher la case.";
return false;
endif;
?>
Seul ce qui est en gras à été ajouter par rapport au fichier d'origine (et fonctionnel)
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
Modifié le 1 mai 2017 à 21:22
Modifié le 1 mai 2017 à 21:22
peux-tu partager le fichier avec le formulaire, avant et après tes modifications?
quand tu écris "Je n'ai strictement aucun retour", veux-tu dire que c'est comme si rien ne se passait quand tu cliques sur un bouton (quel bouton)? ou bien reçois-tu une page blanche en retour?
peux-tu remplacer l'ensemble de ton fichier php serveur par un petit texte genre "coucou, c'est moi'", pour voir ce que cela donne?
quand tu écris "Je n'ai strictement aucun retour", veux-tu dire que c'est comme si rien ne se passait quand tu cliques sur un bouton (quel bouton)? ou bien reçois-tu une page blanche en retour?
peux-tu remplacer l'ensemble de ton fichier php serveur par un petit texte genre "coucou, c'est moi'", pour voir ce que cela donne?
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 1 mai 2017 à 22:29
Modifié le 1 mai 2017 à 22:29
<?php
include_once('templates/page_head.php');
?>
<section class="contact">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="contact-form">
<div id="success" class="col-md-10"></div>
<form name="contactForm" id="contactForm" method="POST" action="mail/mail.php">
<div class="col-md-6">
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Civilité</label>
<select class="form-control" name="sex" id="sex">
<option value="Mr">Monsieur</option>
<option value="Mm">Madame</option>
<option value="Melle">Mademoiselle</option>
</select>
</div>
<div class="form-group col-xs-12">
<label>Nom</label>
<input type="text" name="name" class="form-control" placeholder="Votre Nom" id="name" required>
</div>
</div>
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Email</label>
<input type="email" name="email" class="form-control" placeholder="Votre Adresse Mail" id="email" required>
</div>
</div>
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Téléphone</label>
<input type="text" name="phone" class="form-control" placeholder="Votre téléphone" id="phone" required>
</div>
</div>
<div class="g-recaptcha" data-sitekey="ma clé publique"></div>
</div>
<div class="col-md-6">
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Message</label>
<textarea rows="12" name="message" class="form-control" placeholder="Votre Message" id="message" required></textarea>
</div>
</div>
</div><br>
<div class="row">
<div class="form-group col-xs-11 text-right">
<button type="submit" id="btnSubmit" class="btn btn-info">Envoyer</button>
</div>
</div>
<br>
</form>
</div>
</div>
</div>
</div>
</section>
<?php
include_once('templates/page_footer.php');
?>
La balise <head> se trouve dans le fichier page_head.php.
Le seul code ajouter dans ce fichier est
<div class="g-recaptcha" data-sitekey="ma clé publique"></div>
Mon formulaire lorsqu'il fonctionne affiche :
- envoi le mail
- efface les champs rempli par l'utilisateur
- affiche un message ( "Votre message a bien été envoyé. Je reviendrai vers vous dans les plus brefs délais.")
Quand je dis : Je n'ai strictement aucun retour", c'est que je n'ai :
- pas le message "email envoyé" d'affiché
- pas de réception du mail
- Pas d'affichage de la variable $responseData.
Seul les champs sont effacés et le message "Votre message a bien été envoyé. Je reviendrai vers vous dans les plus brefs délais." affiché.
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
1 mai 2017 à 23:53
1 mai 2017 à 23:53
peut-être en déplaçant
<div class="g-recaptcha" data-sitekey="ma clé publique"></div>juste avant
</form>?
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
>
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
2 mai 2017 à 07:36
2 mai 2017 à 07:36
Bonjour yg_be et bonjour à tous aussi ;-)
Déplacer le captcha à cet endroit ne fait que le déplacer graphiquement. Il est à l'intérieur des balises FORM et c'est le principal (c'est ce que dit google)...
Déplacer le captcha à cet endroit ne fait que le déplacer graphiquement. Il est à l'intérieur des balises FORM et c'est le principal (c'est ce que dit google)...
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
2 mai 2017 à 07:55
2 mai 2017 à 07:55
peut-être faut il également modifier ton script script.js?
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
>
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
2 mai 2017 à 09:14
2 mai 2017 à 09:14
Le HTML, le PHP ça va encore mais alors là, c'est du Javanais...
Je vais m'adresser à un pro dans la grande ville proche de chez moi si j'en trouve un (je ne dis pas que vous n'en êtes pas ;-) ) mais ce sera plus simple pour moi.
Mil merci pour votre aide et très belle journée à vous...
Je vais m'adresser à un pro dans la grande ville proche de chez moi si j'en trouve un (je ne dis pas que vous n'en êtes pas ;-) ) mais ce sera plus simple pour moi.
Mil merci pour votre aide et très belle journée à vous...
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
2 mai 2017 à 11:00
2 mai 2017 à 11:00
Bonjour,
Bon... arrêtons (arrêtez de vrais-je dire...) de partir dans tous les sens et de taper "au pif" ....
COmmence par modifier ton code côté serveur comme ceci :
et dis nous ce que ça t'affiche.
Par contre... ceci :
me parait étrange ....
Il me semble que ce n'est pas la procédure actuelle utilisée dans la documentation...
Regarde ce tuto :
https://fr.jeffprod.com/blog/2014/installez-le-nouveau-captcha-de-google-sur-votre-site-en-php.html
.
Bon... arrêtons (arrêtez de vrais-je dire...) de partir dans tous les sens et de taper "au pif" ....
COmmence par modifier ton code côté serveur comme ceci :
<?php //------------------------------------------------------------------ //activation affichage des erreurs //------------------------------------------------------------------ error_reporting(E_ALL); ini_set('display-errors','on'); //------------------------------------------------------------------ //le temps des tests: //affichage des variables POST //------------------------------------------------------------------ echo "<pre> POST :<br>"; print_r($_POST); echo "</pre>"; //------------------------------------------------------------------ //récupération PROPRE des variables AVANT de les utiliser //------------------------------------------------------------------ $name = !empty($_POST['name']) ? $_POST['name'] : NULL; $email_address = !empty($_POST['email']) && filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ? $_POST['email'] : NULL; $message = !empty($_POST['message']) ? $_POST['message'] : NULL; $phone = !empty($_POST['phone']) ? $_POST['phone'] : NULL; $sex = !empty($_POST['sex']) ? $_POST['sex'] : NULL; $recaptcha = !empty($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : NULL; if(!$name ||!$email_address || !$message || !$phone || !$sex){ echo "Pas de données envoyées!"; $result = false; } //------------------------------------------------------------------ // Traitement du formulaire //------------------------------------------------------------------ if($recaptcha){ //your site secret key $secret = 'ma clé secrète'; //get verify response data $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$recaptcha); $responseData = json_decode($verifyResponse); //pour tester : print_r($responseData); if($responseData->success){ //Envoi du mail $to = 'Mon adresse mail'; $email_subject = "Site web"; $email_body = "Site web.\n\n$sex $name\n\nEmail: $email_address\n\nTéléphone: $phone\n\nMessage:\n$message"; $headers = "From: robot@adresse de mon site web\n"; if(mail($to,$email_subject,$email_body,$headers)){ echo "email envoyé"; $result = true; }else{ echo "Erreur lors de l'envoie de l'email "; $result = false; } }else{ echo "Merci de cocher la case."; $result = false; } }else{ echo " recaptcha est vide !"; } return $result; ?>
et dis nous ce que ça t'affiche.
Par contre... ceci :
//get verify response data $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$recaptcha); $responseData = json_decode($verifyResponse);
me parait étrange ....
Il me semble que ce n'est pas la procédure actuelle utilisée dans la documentation...
Regarde ce tuto :
https://fr.jeffprod.com/blog/2014/installez-le-nouveau-captcha-de-google-sur-votre-site-en-php.html
.
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
Modifié le 2 mai 2017 à 11:19
Modifié le 2 mai 2017 à 11:19
Bonjour et merci jordane45,
J'ai modifié comme indiqué.
- Le captcha n'est validé que lorsque je clic sur les bonnes image (comme avant).
Lorsque j’envoie le mail (clic sur "envoyer"):
- Les champs du formulaire s’effacent
- Le message "Votre message a bien été envoyé. Je reviendrai vers vous dans les plus brefs délais." s'affiche
- Le mail n'est pas envoyé car je ne le reçois pas.
J'ai modifié comme indiqué.
- Le captcha n'est validé que lorsque je clic sur les bonnes image (comme avant).
Lorsque j’envoie le mail (clic sur "envoyer"):
- Les champs du formulaire s’effacent
- Le message "Votre message a bien été envoyé. Je reviendrai vers vous dans les plus brefs délais." s'affiche
- Le mail n'est pas envoyé car je ne le reçois pas.
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
2 mai 2017 à 11:25
2 mai 2017 à 11:25
- Le message "Votre message a bien été envoyé. Je reviendrai vers vous dans les plus brefs délais." s'affiche
heuuu... tu peux me dire à quel endroit se trouve, dans ton code, le texte du message en question ???
Car dans le PHP que tu nous montres ..... tu peux avoir éventuellement un
echo "email envoyé";
mais c'est tout !
Es-tu sûr de modifier le bon fichier ????
celui qui est appelé dans ton FORM ... à savoir : mail/mail.php ?
valttt
Messages postés
279
Date d'inscription
mercredi 7 mars 2012
Statut
Membre
Dernière intervention
27 octobre 2024
16
2 mai 2017 à 11:37
2 mai 2017 à 11:37
Comme je l'ai indiqué plus haut, ce message vient du fichier script.js.
Je n'en sais pas comment celui-ci est utilisé.
Oui, je modifie le bon fichier ;-)
Je n'en sais pas comment celui-ci est utilisé.
Oui, je modifie le bon fichier ;-)
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
2 mai 2017 à 11:41
2 mai 2017 à 11:41
Alors il nous faut le contenu de ton fichier script.js
1 mai 2017 à 18:10
que fais-tu ensuite (ailleurs) avec $errMsg?
quel est le message que tu reçois t'indiquant que le mail est envoyé? d'où vient ce message?