Précédent
- 1
- 2
$(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>
Précédent
- 1
- 2
Donc, dans le code php que je t'ai donné...
commence par modifier la ligne :
par
Puis dans ton js :
$(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, grecaptcharesponse:$("input#g-recaptcha-response").val(); }, cache: false, success: function(reponse) { console.log(reponse); // 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(errormsg) { console.log(errormsg); // 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"); }); });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...