J'ai finalisé mon formulaire, cependant aucun mail n'arrive, je ne comprends pas.
J'ai réussi à le recevoir une fois en passant par Firefox mais depuis je n'y arrive pas alors que rien n'a été modifié.
Je ne sais pas si cela vient du php ou javascript, j'opte plus pour la deuxième option.
Merci de votre aide !
$(function () {
$('#contact-form').submit(function(e) {
e.preventDefault();
$('.comments').empty();
var postdata = $('#contact-form').serialize();
$.ajax({
type: 'POST',
url: 'contact.php',
data: postdata,
dataType: 'json',
success: function(json) {
if(json.isSuccess)
{
$('#contact-form').append("<p class='thank-you'>Votre message a bien été envoyé.</p>");
$('#contact-form')[0].reset();
}
else
{
$('#firstname + .comments').html(json.firstnameError);
$('#name + .comments').html(json.nameError);
$('#email + .comments').html(json.emailError);
$('#phone + .comments').html(json.phoneError);
$('#message + .comments').html(json.messageError);
}
}
});
});
})
<?php
$array = array("firstname" => "", "name" => "", "email" => "", "phone" => "", "message" => "", "firstnameError" => "", "nameError" => "", "emailError" => "", "phoneError" => "", "messageError" => "", "isSuccess" => false);
$emailTo = "monadressemail";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$array["firstname"] = test_input($_POST["firstname"]);
$array["name"] = test_input($_POST["name"]);
$array["email"] = test_input($_POST["email"]);
$array["phone"] = test_input($_POST["phone"]);
$array["message"] = test_input($_POST["message"]);
$array["isSuccess"] = true;
$emailText = "";
if (empty($array["firstname"])) {
$array["firstnameError"] = "Veuillez renseigner votre prénom.";
$array["isSuccess"] = false;
} else {
$emailText .= "Firstname: {$array['firstname']}\n";
}
if (empty($array["name"])) {
$array["nameError"] = "Veuillez renseigner votre nom";
$array["isSuccess"] = false;
} else {
$emailText .= "Name: {$array['name']}\n";
}
if(!isEmail($array["email"])) {
$array["emailError"] = "Veuillez respecter le format email ().";
$array["isSuccess"] = false;
} else {
$emailText .= "Email: {$array['email']}\n";
}
if (!isPhone($array["phone"])) {
$array["phoneError"] = "Veuillez indiquer un numéro de téléphone valide.";
$array["isSuccess"] = false;
} else {
$emailText .= "Phone: {$array['phone']}\n";
}
if (empty($array["message"])) {
$array["messageError"] = "Veuillez insérer votre message.";
$array["isSuccess"] = false;
} else {
$emailText .= "Message: {$array['message']}\n";
}
if($array["isSuccess"]) {
$headers = "From: {$array['firstname']} {$array['name']} <{$array['email']}>\r\nReply-To: {$array['email']}";
mail($emailTo, "Un message de votre site Grapr", $emailText, $headers);
}
echo json_encode($array);
}
function isEmail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL);
}
function isPhone($phone) {
return preg_match("/^[0-9 ]*$/",$phone);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>