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 :
CONTACT.PHP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 -->
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } } ?>
Je ne maitise pas PHP
Merci par avance pour votre conseil.
Cordialement
Partager