Formulaire contact PHP erreur script
Bonjour,
Sur le site : https://sylvianeleblond.fr/ après l'intégration de reCaptcha (qui fonctionne correctement) dans les formulaires index.php et contact.php une erreur dans mon code persiste.
INDEX.PHP :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| <?php
require('constant.php');
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Contact Us</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
<link href="../css/menu.css" rel="stylesheet" type="text/css">
<link href="../css/mail.css" rel="stylesheet">
<script src="component/jquery/jquery-3.2.1.min.js"></script>
<script>
$(document).ready(function (e){
$("#frmContact").on('submit',(function(e){
e.preventDefault();
$("#mail-status").hide();
$('#send-message').hide();
$('#loader-icon').show();
$.ajax({
url: "contact.php",
type: "POST",
dataType:'json',
data: {
"nom":$('input[name="nom"]').val(),
"email":$('input[name="email"]').val(),
"ref":$('input[name="ref"]').val(),
"message":$('textarea[name="message"]').val(),
"g-recaptcha-response":$('textarea[id="g-recaptcha-response"]').val()},
success: function(response){
$("#mail-status").show();
$('#loader-icon').hide();
if(response.type == "error") {
$('#send-message').show();
$("#mail-status").attr("class","error");
} else if(response.type == "message"){
$('#send-message').hide();
$("#mail-status").attr("class","success");
}
$("#mail-status").html(response.text);
},
error: function(){}
});
}));
});
</script>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
........
<div id="central">
<div class="content">
<h3>Demande d'information</h3>
<div id="message">
<form id="frmContact" action="" method="POST" novalidate="novalidate">
<div class="label">Nom Prénom</div>
<div class="field">
<input type="text" id="nom" name="nom" placeholder="saisir votre nom et prénom" class="required" aria-required="true" required>
</div>
<div class="label">Email</div>
<div class="field">
<input type="email" id="email" name="email" placeholder="saisir votre email " class="required email" aria-required="true" required>
</div>
<div class="label">Référence</div>
<div class="field">
<select id="ref" name="ref" style="font-family : Open Sans; font-size:1em;width:500px;height:25px;" >
<?php
if (($handle = fopen("ref.csv", "r")) !== false) {
while (($data = fgetcsv($handle, 1000, ";")) !== false) {
echo '<option value="' . $data[0] . '">' . htmlspecialchars($data[0]) . '</option>';
}
fclose($handle);
}
?>
</select>
</div>
<div class="label">Message</div>
<div class="field">
<textarea id="message" name="message" placeholder="saisir votre demande" required></textarea>
</div>
<div class="g-recaptcha" data-sitekey="<?php echo SITE_KEY; ?>"></div>
<div id="mail-status"></div>
<button type="Submit" id="submit" style="clear:both;">Send Message</button>
</form>
<div id="loader-icon" style="display:none;"><img src="img/loader.gif" alt="" /></div>
</div>
</div><!-- content -->
</div><!-- central --> |
CONTACT.PHP
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| <?php
if($_POST)
{
require('constant.php');
$user_nom = filter_var($_POST["nom"], FILTER_SANITIZE_STRING);
$user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
$ref = filter_var($_POST["ref"], FILTER_SANITIZE_STRING);
$message = filter_var($_POST["message"], FILTER_SANITIZE_STRING);
if(empty($user_nom)) {
$empty[] = "<b>Nom</b>";
}
if(empty($user_email)) {
$empty[] = "<b>Email</b>";
}
if(empty($ref)) {
$empty[] = "<b>Référence</b>";
}
if(empty($message)) {
$empty[] = "<b>Message</b>";
}
if(!empty($empty)) {
$output = json_encode(array('type'=>'error', 'text' => implode(", ",$empty) . ' Renseigner les champs !'));
die($output);
}
if(!filter_var($user_email, FILTER_VALIDATE_EMAIL)){ //email validation
$output = json_encode(array('type'=>'error', 'text' => '<b>'.$user_email.'</b> Adresse mail incorrecte !.'));
die($output);
}
//reCAPTCHA validation
if (isset($_POST['g-recaptcha-response'])) {
require('component/recaptcha/src/autoload.php');
$recaptcha = new \ReCaptcha\ReCaptcha(SECRET_KEY, new \ReCaptcha\RequestMethod\SocketPost());
$resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
if (!$resp->isSuccess()) {
$output = json_encode(array('type'=>'error', 'text' => '<b>Captcha</b> Activer la validation !'));
die($output);
}
}
$toEmail = "xxxxxxxxx@gmail.com";
$mailHeaders = "De: " . $user_nom . "<" . $user_email . ">\r\n";
$mailBody = "Nom : " . $user_nom . "\n";
$mailBody .= "Email : " . $user_email . "\n";
$mailBody .= "Référence : " . $ref . "\n";
$mailBody .= "Message : " . $message . "\n";
if (mail($toEmail, "Contact Mail", $mailBody, $mailHeaders)) {
$output = json_encode(array('type'=>'message', 'text' => 'Merci pour votre message.'));
die($output);
} else {
$output = json_encode(array('type'=>'error', 'text' => 'Envoi impossible'.SENDER_EMAIL));
die($output);
}
}
?> |
Après la saisie des champs du formulaire, Référence [ref] la validation [submit] provoque une erreur : il m'indique "saisie ref demandée !" alors que la sélection Référence dans la liste a bien été effectuée.
Je ne maitise pas PHP
Merci par avance pour votre conseil.
Cordialement
1 pièce(s) jointe(s)
Message erreur submit contact
Bonsoir,
jreaux62 : voici le message d'erreur après remplissage du formulaire :
Pièce jointe 442657
Mestuz : la modification n'a pas résolu le problème. le message apparaît comme ci-dessus.
Cordialement
Formulaire contact PHP erreur script
Bonjour,
Le fait que cela soit un "select" la vérification ne se fait pas correctement !
Quelqu'un a-t-il une idée sur l'anomalie rencontrée ?
Cordialement