ReCaptcha et PHP
valttt
Messages postés
321
Statut
Membre
-
valttt Messages postés 321 Statut Membre -
valttt Messages postés 321 Statut Membre -
Bonjour,
Je ne comprends pas comment intégré dans ma page contact.php, le code pour avoir un reCaptcha.
Dans tous les forums, vidéos, site de google, ou l'on parle de reCaptcha et de PHP, on parle de code html (voir image (balise <head>)).

Ma page contact est en php et pas en html.
Pourquoi parle t'on de code html alors que c'est pour du php ?
Quelqu'un pourrait me dire comment mettre les bons codes aux bons endroits (je n'ai pas de page en html sur mon site).
Merci d'avance pour vos conseils...
Je ne comprends pas comment intégré dans ma page contact.php, le code pour avoir un reCaptcha.
Dans tous les forums, vidéos, site de google, ou l'on parle de reCaptcha et de PHP, on parle de code html (voir image (balise <head>)).

Ma page contact est en php et pas en html.
Pourquoi parle t'on de code html alors que c'est pour du php ?
Quelqu'un pourrait me dire comment mettre les bons codes aux bons endroits (je n'ai pas de page en html sur mon site).
Merci d'avance pour vos conseils...
A voir également:
- Merci de cocher le captcha
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Je ne suis pas un robot recaptcha confidentialité - conditions - Forum Facebook
- Alert php - Forum PHP
24 réponses
$(function() {
$("input,textarea").jqBootstrapValidation({
preventSubmit: true,
submitError: function($form, event, errors) {
// additional error messages or events
},
submitSuccess: function($form, event) {
// Prevent spam click and default submit behaviour
$("#btnSubmit").attr("disabled", true);
event.preventDefault();
// get values from FORM
var sex = $("select#sex").val();
var name = $("input#name").val();
var email = $("input#email").val();
var message = $("textarea#message").val();
var phone = $("input#phone").val();
$.ajax({
url: "././mail/mail.php",
type: "POST",
data: {
name: name,
email: email,
message: message,
phone: phone,
sex: sex
},
cache: false,
success: function() {
// Enable button & show success message
$("#btnSubmit").attr("disabled", false);
$('#success').html("<div class='alert alert-success'>");
$('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×")
.append("</button>");
$('#success > .alert-success')
.append("<strong>Votre message a bien été envoyé. Je reviendrai vers vous dans les plus brefs délais.</strong>");
$('#success > .alert-success')
.append('</div>');
//clear all fields
$('#contactForm').trigger("reset");
},
error: function() {
// Fail message
$('#success').html("<div class='alert alert-danger'>");
$('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×")
.append("</button>");
$('#success > .alert-danger').append("<strong>Désolé " + name + ", on dirait que le serveur mail ne répond pas... :( Veuillez réessayer plus tard.");
$('#success > .alert-danger').append('</div>');
//clear all fields
$('#contactForm').trigger("reset");
},
})
},
filter: function() {
return $(this).is(":visible");
},
});
$("a[data-toggle=\"tab\"]").click(function(e) {
e.preventDefault();
$(this).tab("show");
});
});
Je ne vois pas de différence entre les 2 premiers codes
$recaptcha = !empty($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : NULL;.
J'ai la réponse suivante, et toujours pas de mail reçu :
POST :
Array
(
[sex] => Mm
[name] => aqzs
[email] => aqzs@free.fr
[phone] => 0231456987
[g-recaptcha-response] => 03AIezHSbN9xwNYIbLey0so3VPqc-sDKsdFDzevxEB_PkajfBwANZ1UqBsfzax67jkuArze2-Br5PzrXIRbGqDqNElXTDqL6xI0RQLpG9ImwrhP6AGUacYdrjHJ7ASVCH59HgNOPSoHm6Tp88zuO586vpU4EPoAmAhfH1MikqoNcp6UxW721K_ZIaCvqcwexdapixv06DSC4qG_uHQ9KbTGOUgh48vcBsF69Hi9v6dfc89ksiUw9UIGp88Kbd8A74Ps-1hUzRMxeJxkRZu8iigUc8qunIadtljbeOux2Fzg3QCoTw_zOvSCTANqJLJ9em8TxXqGcGNalKs
[message] => aqzs
)
recaptcha est vide !
Notice: Undefined variable: result in /htdocs/mail/mail.php on line 68
POST :
Array
(
[sex] => Mm
[name] => aqzs
[email] => aqzs@free.fr
[phone] => 0231456987
[g-recaptcha-response] => 03AIezHSbN9xwNYIbLey0so3VPqc-sDKsdFDzevxEB_PkajfBwANZ1UqBsfzax67jkuArze2-Br5PzrXIRbGqDqNElXTDqL6xI0RQLpG9ImwrhP6AGUacYdrjHJ7ASVCH59HgNOPSoHm6Tp88zuO586vpU4EPoAmAhfH1MikqoNcp6UxW721K_ZIaCvqcwexdapixv06DSC4qG_uHQ9KbTGOUgh48vcBsF69Hi9v6dfc89ksiUw9UIGp88Kbd8A74Ps-1hUzRMxeJxkRZu8iigUc8qunIadtljbeOux2Fzg3QCoTw_zOvSCTANqJLJ9em8TxXqGcGNalKs
[message] => aqzs
)
recaptcha est vide !
Notice: Undefined variable: result in /htdocs/mail/mail.php on line 68
Tu as cette réponse où ça ?
Peux tu nous dire ce qui s'affiche dans la console de ton navigateur ?
Puis une petite correction du code php :
Peux tu nous dire ce qui s'affiche dans la console de ton navigateur ?
Puis une petite correction du code php :
<?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['grecaptcharesponse']) ? $_POST['grecaptcharesponse'] : (!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 //------------------------------------------------------------------ $result = ""; 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; ?>
Je commence par le début:
J'ai tout modifier comme demandé.
Après avoir envoyer le mail, j'ai le code source (remplacement de la page formulaire par une page blanche avec des infos):
J'ai tout modifier comme demandé.
Après avoir envoyer le mail, j'ai le code source (remplacement de la page formulaire par une page blanche avec des infos):
<html><head><link rel="stylesheet" type="text/css" href="moz-extension://eae674a8-10f2-40b3-acdf-aa155024fb8e/skin/socialwidgets.css"></head><body><pre> POST :<br>Array
(
[sex] => Melle
[name] => aqzsed
[email] => aqzsed@free.fr
[phone] => 0987456321
[g-recaptcha-response] => 03AIezHSZbykT_f01_s54Sde1KWmUoUs22H9TqPo5HqldMCD8xGf55sFshx-DtAAhPuY52ofZAhQ6Bx9_7QlIIDNFdgk8xCyhA9uaL_MWiXlqORC1XcqvUOsyVQ8MO7duPio-rnb2fkiYpV6N_IT8IuhtdNmXKMEkx1OnJirqeLIPwcK7uzeI3IJDjk2Z6LgCo_hl6IWYTi-e_kHdEYSB_IVZbfccAKlqA-SjURqyIEZj2rIx6-OAU0usvSevYSNLodxsv9BWQE_xH9fcCqsF4gkBFAwVdkaFyi48RGo9Q2m7LWPGaxEcsmxQZIOI-d--2nG1aOs4ZXVSz
[message] => 9876543210
)
</pre><br>
<b>Warning</b>: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in <b>/htdocs/mail/mail.php</b> on line <b>40</b><br>
<br>
<b>Warning</b>: file_get_contents(http://www.google.com/... failed to open stream: no suitable wrapper could be found in <b>/htdocs/mail/mail.php</b> on line <b>40</b><br>
<br>
<b>Notice</b>: Trying to get property of non-object in <b>/htdocs/mail/mail.php</b> on line <b>46</b><br>
Merci de cocher la case.</body></html>
Donc, dans le code php que je t'ai donné...
commence par modifier la ligne :
par
Puis dans ton js :
Ensuite, affiche la CONSOLE de ton navigateur et valide ton formulaire puis dis nous ce qui s'affiche dans la console.
EDIT : correction du php (erreur de copier/coller)
Merci encore...