Je suis en utilisant la fonction AJAX jQuery pour envoyer un message à partir d'un formulaire de contact -PHP Mail & Ajax: Le message ne contient pas de données de formulaire
$('form button').click(function() {
$("input").removeClass("error");
$("textarea").removeClass("error");
var name = $("#name").val();
if (name == "" || name == "Name" || name == "Namn") {
$("#name").addClass("error");
$("#name").focus();
return false;
}
var email = $("#email").val();
if (email == "" || email == "Email" || email == "Epost") {
$("#email").addClass('error');
$("#email").focus();
return false;
}
var message = $("#message").val();
if (message == "") {
$("#message").addClass('error');
$("#message").focus();
return false;
}
// Non-verifying fields
var phone = $("input#phone").val();
// Gather data
var post = 'name=' + name + '&email=' + email + '&phone=' + phone + '&message=' + message;
// Disable form
var limit = document.forms[0].elements.length;
for (i = 0; i < limit; i++) {
document.forms[0].elements[i].disabled = true;
}
// Send data
$.ajax({
type: "POST",
url: "form_handler.php",
data: post,
success: function() {
$('div.contact form').animate({
opacity: 0.25
}, function() {
$('div.contact div.confirm').fadeIn(200);
});
},
error: function() {
$('div.contact form').animate({
opacity: 0.25
}, function() {
$('div.contact div.deny').fadeIn(200);
});
}
});
return false;
});
Je sais que ce n'est pas la méthode la plus sûre étant donné que je Révélez la Mail fichier dans mon code JS mais néanmoins je veux que cela fonctionne avant que je décide d'essayer autre chose. Dans mon formulaire de contact je les champs ci-dessus (nom, email, téléphone et messagerie) et dans « form_handler.php » les paramètres ressemblent à ceci -
<?php
header('Content-type: text/html; charset=UTF-8');
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$to = "[email protected]";
$subject = "Meddelande från x.se";
$body = "------------------------------------------------------------------------------------------------------------------------\n\n";
$body .= "Meddelande från $name:\n\n";
$body .= "$message\n\n";
$body .= "Avsändarens epost: $email\n";
$body .= "Avsändarens telefonnummer: $phone\n\n";
$body .= "------------------------------------------------------------------------------------------------------------------------";
$headers = "From: $email";
mail($to,$subject,$body,$headers);
?>
Quand je combine les scripts que je puisse générer un message bien il ne contient aucune donnée de formulaire. Ai-je manqué quelque chose?
Avez-vous essayé le dumping '_POST' $ pour voir si vous obtenez même les données? – Maerlyn
Je ne suis pas très qualifié avec PHP - Où dois-je le mettre? –
au tout début, faites un 'var_dump ($ _ POST); die(); 'cela affichera toutes les valeurs reçues via post, puis arrêtera le script. – Maerlyn