Formulaire de contact
Evalon
Messages postés
66
Date d'inscription
Statut
Membre
Dernière intervention
-
Evalon Messages postés 66 Date d'inscription Statut Membre Dernière intervention -
Evalon Messages postés 66 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de faire un site internet avec un modèle que j'ai téléchargé d'Internet après avoir modifié avec mon CSS le formulaire de contact et après avoir rajouter le reCAPTCHA de Google je me rends compte que pour l'envoi en plus du fichier php que voiçi
il y a un fichier JavaScript que voici
mais je n'arrive pas à enbriquer le fichier php avec les lignes de code pour le reCAPTCHA
Mon formulaire de contact
si je les imbrique cela me donne ceci
le seul résultat que j'ai en permanence c'est une erreur que le recaptcha est constamment non cocher
Si quelqu'un pouvait m'aider je lui en serai grandement reconnaissant
Merci d'avance
Je suis en train de faire un site internet avec un modèle que j'ai téléchargé d'Internet après avoir modifié avec mon CSS le formulaire de contact et après avoir rajouter le reCAPTCHA de Google je me rends compte que pour l'envoi en plus du fichier php que voiçi
<?php // Replace this with your own email address $siteOwnersEmail = 'user@website.com'; if($_POST) { $name = trim(stripslashes($_POST['contactName'])); $email = trim(stripslashes($_POST['contactEmail'])); $subject = trim(stripslashes($_POST['contactSubject'])); $contact_message = trim(stripslashes($_POST['contactMessage'])); // Check Name if (strlen($name) < 2) { $error['name'] = "Please enter your name."; } // Check Email if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) { $error['email'] = "Please enter a valid email address."; } // Check Message if (strlen($contact_message) < 15) { $error['message'] = "Please enter your message. It should have at least 15 characters."; } // Subject if ($subject == '') { $subject = "Contact Form Submission"; } // Set Message $message .= "Email from: " . $name . "<br />"; $message .= "Email address: " . $email . "<br />"; $message .= "Message: <br />"; $message .= $contact_message; $message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />"; // Set From: header $from = $name . " <" . $email . ">"; // Email Headers $headers = "From: " . $from . "\r\n"; $headers .= "Reply-To: ". $email . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; if (!$error) { ini_set("sendmail_from", $siteOwnersEmail); // for windows server $mail = mail($siteOwnersEmail, $subject, $message, $headers); if ($mail) { echo "OK"; } else { echo "Something went wrong. Please try again."; } } # end if - no validation error else { $response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null; $response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null; $response .= (isset($error['message'])) ? $error['message'] . "<br />" : null; echo $response; } # end if - there was a validation error } ?>
il y a un fichier JavaScript que voici
/*----------------------------------------------------------------------------------- /* /* Init JS /* -----------------------------------------------------------------------------------*/ jQuery(document).ready(function($) { /*----------------------------------------------------*/ /* FitText Settings ------------------------------------------------------ */ setTimeout(function() { $('h1.responsive-headline').fitText(1, { minFontSize: '40px', maxFontSize: '90px' }); }, 100); /*----------------------------------------------------*/ /* Smooth Scrolling ------------------------------------------------------ */ $('.smoothscroll').on('click',function (e) { e.preventDefault(); var target = this.hash, $target = $(target); $('[/contents/498-html-langage html], body').stop().animate({ 'scrollTop': $target.offset().top }, 800, 'swing', function () { window.location.hash = target; }); }); /*----------------------------------------------------*/ /* Highlight the current section in the navigation bar ------------------------------------------------------*/ var sections = $("section"); var navigation_links = $("#nav-wrap a"); sections.waypoint({ handler: function(event, direction) { var active_section; active_section = $(this); if (direction === "up") active_section = active_section.prev(); var active_link = $('#nav-wrap a[href="#' + active_section.attr("id") + '"]'); navigation_links.parent().removeClass("current"); active_link.parent().addClass("current"); }, offset: '35%' }); /*----------------------------------------------------*/ /* Make sure that #header-background-image height is /* equal to the browser height. ------------------------------------------------------ */ $('header').css({ 'height': $(window).height() }); $(window).on('resize', function() { $('header').css({ 'height': $(window).height() }); $('body').css({ 'width': $(window).width() }) }); /*----------------------------------------------------*/ /* Fade In/Out Primary Navigation ------------------------------------------------------*/ $(window).on('scroll', function() { var h = $('header').height(); var y = $(window).scrollTop(); var nav = $('#nav-wrap'); if ( (y > h*.20) && (y < h) && ($(window).outerWidth() > 768 ) ) { nav.fadeOut('fast'); } else { if (y < h*.20) { nav.removeClass('opaque').fadeIn('fast'); } else { nav.addClass('opaque').fadeIn('fast'); } } }); /*----------------------------------------------------*/ /* Modal Popup ------------------------------------------------------*/ $('.item-wrap a').magnificPopup({ type:'inline', fixedContentPos: false, removalDelay: 200, showCloseBtn: false, mainClass: 'mfp-fade' }); $(document).on('click', '.popup-modal-dismiss', function (e) { e.preventDefault(); $.magnificPopup.close(); }); /*----------------------------------------------------*/ /* Flexslider /*----------------------------------------------------*/ $('.flexslider').flexslider({ namespace: "flex-", controlsContainer: ".flex-container", animation: 'slide', controlNav: true, directionNav: false, smoothHeight: true, slideshowSpeed: 7000, animationSpeed: 600, randomize: false, }); /*----------------------------------------------------*/ /* contact form ------------------------------------------------------*/ $('form#contactForm button.submit').click(function() { $('#image-loader').fadeIn(); var contactName = $('#contactForm #contactName').val(); var contactEmail = $('#contactForm #contactEmail').val(); var contactSubject = $('#contactForm #contactSubject').val(); var contactMessage = $('#contactForm #contactMessage').val(); var data = 'contactName=' + contactName + '&contactEmail=' + contactEmail + '&contactSubject=' + contactSubject + '&contactMessage=' + contactMessage; $.ajax({ type: "POST", url: "inc/sendEmail.php", data: data, success: function(msg) { // Message was sent if (msg == 'OK') { $('#image-loader').fadeOut(); $('#message-warning').hide(); $('#contactForm').fadeOut(); $('#message-success').fadeIn(); } // There was an error else { $('#image-loader').fadeOut(); $('#message-warning').html(msg); $('#message-warning').fadeIn(); } } }); return false; }); });
mais je n'arrive pas à enbriquer le fichier php avec les lignes de code pour le reCAPTCHA
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST'){ $key = 'clé secrète recaptcha google'; $response = $_POST['g-recaptcha-response']; $ip = $_SERVER['REMOTE_ADDR']; $gapi ='https://www.google.com/recaptcha/api/siteverify?secret='.$key.'&response='.$response.'&remoteip='.$ip; $json = json_decode(file_get_contents($gapi), true); if (!$json['success']) { foreach($json['error-codes'] as $error) { echo "<p style=\"text-align:center;padding-top:5%;font-size:18px; color:#048B9A;\">Vous n'avez pas cliquez sur :</p><p><img src='../Img/Article/fr-recaptcha.PNG' alt='recaptcha.png' title='Vous avez oublié de cliquer lá'/></p><br /><a href=\"../contact\">Retourner au formulaire de contact</a></p>"; } } else{ // à partir de là en théorie c'est le script php d'envoi $pseudo = $_POST['pseudo']; $mail = $_POST['mail']; $sujet = $_POST['sujet']; $message = $_POST['message']; $adresse = "admin@user.com"; $expediteur="From: $pseudo <$mail>"; if(mail($adresse, $sujet, $message, $expediteur)){ echo "<p style=\"text-align:center;padding-top:5%;font-size:18px; color:#048B9A;\">Votre mail a bien été envoyé. Je vous répondrai le plus rapidement possible.</p>"; }else{ echo "<p style=\"text-align:center;font-size:18px; color:red;\">Un problème est survenu lors de l'envoi du mail.</p><p style=\"text-align:center;font-size:18px; color:red;\"><br />"; } } } ?>
Mon formulaire de contact
<div class="eight columns abc"> <!-- form --> <form action="" method="post" id="contactForm" name="contactForm"> <fieldset> <div> <label for="contactName">Nom <span class="required">*</span></label> <input required type="text" value="" size="50" maxlength="150" id="contactName" name="contactName" placeholder=" Veuillez entrer votre pseudo"> </div> <div> <label for="contactEmail">Email <span class="required">*</span></label> <input required type="email" value="" size="50" maxlength="300" id="contactEmail" name="contactEmail" placeholder=" Veuillez indiquer votre mail"> </div> <div> <label for="contactSubject">Sujet</label> <input required type="text" value="" size="50" maxlength="150" id="contactSubject" name="contactSubject" placeholder=" Veuillez indiquer le sujet de votre message"> </div> <div> <label for="contactMessage">Message <span class="required">*</span></label> <textarea required cols="50" rows="15" id="contactMessage" name="contactMessage" maxlength="5000" placeholder=" Veuillez écrire ici votre message"></textarea> </div> <div class="g-recaptcha" data-sitekey="Clé publique recaptcha"> </div> </br> <div> <button class="submit" type="reset">Annuler</button> <button class="submit">Envoyer</button> <span id="image-loader"> <img alt="" src="images/loader.gif"> </span> </div> </fieldset> </form> <!-- Form End --> <!-- contact-warning --> <div id="message-warning"> Error boy</div> <!-- contact-success --> <div id="message-success"> <i class="fa fa-check"></i>Your message was sent, thank you!<br> </div> </div>
si je les imbrique cela me donne ceci
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST'){ $key = 'clé secrète recaptcha google'; $response = $_POST['g-recaptcha-response']; $ip = $_SERVER['REMOTE_ADDR']; $gapi ='https://www.google.com/recaptcha/api/siteverify?secret='.$key.'&response='.$response.'&remoteip='.$ip; $json = json_decode(file_get_contents($gapi), true); if (!$json['success']) { foreach($json['error-codes'] as $error) { echo "<p style=\"text-align:center;padding-top:5%;font-size:18px; color:#048B9A;\">Vous n'avez pas cliquez sur :</p><p><img src='../Img/Article/fr-recaptcha.PNG' alt='recaptcha.png' title='Vous avez oublié de cliquer lá'/></p><br /><a href=\"../contact\">Retourner au formulaire de contact</a></p>"; } } else{ if($_POST) { $name = trim(stripslashes($_POST['contactName'])); $email = trim(stripslashes($_POST['contactEmail'])); $subject = trim(stripslashes($_POST['contactSubject'])); $contact_message = trim(stripslashes($_POST['contactMessage'])); // Replace this with your own email address $siteOwnersEmail = 'contact@user.com'; // Check Name if (strlen($name) < 2) { $error['name'] = "Please enter your name."; } // Check Email if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) { $error['email'] = "Please enter a valid email address."; } // Check Message if (strlen($contact_message) < 15) { $error['message'] = "Please enter your message. It should have at least 15 characters."; } // Subject if ($subject == '') { $subject = "Contact Form Submission"; } // Set Message $message .= "Email from: " . $name . "<br />"; $message .= "Email address: " . $email . "<br />"; $message .= "Message: <br />"; $message .= $contact_message; $message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />"; // Set From: header $from = $name . " <" . $email . ">"; // Email Headers $headers = "From: " . $from . "\r\n"; $headers .= "Reply-To: ". $email . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; if (!$error) { ini_set("sendmail_from", $siteOwnersEmail); // for windows server $mail = mail($siteOwnersEmail, $subject, $message, $headers); if ($mail) { echo "OK"; } else { echo "Something went wrong. Please try again."; } } # end if - no validation error else { $response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null; $response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null; $response .= (isset($error['message'])) ? $error['message'] . "<br />" : null; echo $response; } # end if - there was a validation error } } } ?>
le seul résultat que j'ai en permanence c'est une erreur que le recaptcha est constamment non cocher
Si quelqu'un pouvait m'aider je lui en serai grandement reconnaissant
Merci d'avance
A voir également:
- Formulaire de contact
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Formulaire de contact le bon coin introuvable ✓ - Forum Vos droits sur internet
- Recuperer contact carte sim - Guide
3 réponses
Bonjour,
Visiblement tu utilises de l'ajax.ok.
Déjà .. tu essaies de transmettre une variable
Visiblement tu utilises de l'ajax.ok.
Déjà .. tu essaies de transmettre une variable
$_POST['g-recaptcha-response'];Sauf que je ne vois nul part dans ton javascript cette donnée "g-recaptcha-response"
j'ai fait les changement que tu indique plus haut à savoir
pour le php:
pour le javascript:
Mis pas de changement j'ai toujours le message que le recaptcha n'est pas coché
pour le php:
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST'){ $key = 'Clé privé google'; $response = $_POST['g_recaptcha_response']; $ip = $_SERVER['REMOTE_ADDR']; $gapi ='https://www.google.com/recaptcha/api/siteverify?secret='.$key.'&response='.$response.'&remoteip='.$ip; $json = json_decode(file_get_contents($gapi), true); if (!$json['success']) { foreach($json['error-codes'] as $error) { echo "<p style=\"text-align:center;padding-top:5%;font-size:18px; color:#048B9A;\">Vous n'avez pas cliquez sur :</p><p style=\"text-align:center;padding-top:5%;\"><img src='../Img/Article/fr-recaptcha.PNG' alt='recaptcha.png' title='Vous avez oublié de cliquer lá'/></p>"; } } else{ // Replace this with your own email address $siteOwnersEmail = 'user@website.com'; if($_POST) { $name = trim(stripslashes($_POST['contactName'])); $email = trim(stripslashes($_POST['contactEmail'])); $subject = trim(stripslashes($_POST['contactSubject'])); $contact_message = trim(stripslashes($_POST['contactMessage'])); // Check Name if (strlen($name) < 2) { $error['name'] = "Veuillez saisir votre nom."; } // Check Email if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) { $error['email'] = "Veuillez saisir adresse éléctronique valide."; } // Check Message if (strlen($contact_message) < 15) { $error['message'] = "Veuillez saisir votre message. Il doit avoir au moins 15 caratères."; } // Subject if ($subject == '') { $subject = "Contact Form Submission"; } // Set Message $message .= "Email from: " . $name . "<br />"; $message .= "Email address: " . $email . "<br />"; $message .= "Message: <br />"; $message .= $contact_message; $message .= "<br /> ----- <br /> Ce courrier électronique a été envoyer depuis votre site web<br />"; // Set From: header $from = $name . " <" . $email . ">"; // Email Headers $headers = "From: " . $from . "\r\n"; $headers .= "Reply-To: ". $email . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; if (!$error) { ini_set("sendmail_from", $siteOwnersEmail); // for windows server $mail = mail($siteOwnersEmail, $subject, $message, $headers); if ($mail) { echo "OK"; } else { echo "Un problème est survenu lors de l'envoi du mail. Veuillez réessayer."; } } # end if - no validation error else { $response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null; $response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null; $response .= (isset($error['message'])) ? $error['message'] . "<br />" : null; echo $response; } # end if - there was a validation error } } } ?>
pour le javascript:
/*----------------------------------------------------------------------------------- /* /* Init JS /* -----------------------------------------------------------------------------------*/ jQuery(document).ready(function($) { /*----------------------------------------------------*/ /* FitText Settings ------------------------------------------------------ */ setTimeout(function() { $('h1.responsive-headline').fitText(1, { minFontSize: '40px', maxFontSize: '90px' }); }, 100); /*----------------------------------------------------*/ /* Smooth Scrolling ------------------------------------------------------ */ $('.smoothscroll').on('click',function (e) { e.preventDefault(); var target = this.hash, $target = $(target); $('html, body').stop().animate({ 'scrollTop': $target.offset().top }, 800, 'swing', function () { window.location.hash = target; }); }); /*----------------------------------------------------*/ /* Highlight the current section in the navigation bar ------------------------------------------------------*/ var sections = $("section"); var navigation_links = $("#nav-wrap a"); sections.waypoint({ handler: function(event, direction) { var active_section; active_section = $(this); if (direction === "up") active_section = active_section.prev(); var active_link = $('#nav-wrap a[href="#' + active_section.attr("id") + '"]'); navigation_links.parent().removeClass("current"); active_link.parent().addClass("current"); }, offset: '35%' }); /*----------------------------------------------------*/ /* Make sure that #header-background-image height is /* equal to the browser height. ------------------------------------------------------ */ $('header').css({ 'height': $(window).height() }); $(window).on('resize', function() { $('header').css({ 'height': $(window).height() }); $('body').css({ 'width': $(window).width() }) }); /*----------------------------------------------------*/ /* Fade In/Out Primary Navigation ------------------------------------------------------*/ $(window).on('scroll', function() { var h = $('header').height(); var y = $(window).scrollTop(); var nav = $('#nav-wrap'); if ( (y > h*.20) && (y < h) && ($(window).outerWidth() > 768 ) ) { nav.fadeOut('fast'); } else { if (y < h*.20) { nav.removeClass('opaque').fadeIn('fast'); } else { nav.addClass('opaque').fadeIn('fast'); } } }); /*----------------------------------------------------*/ /* Modal Popup ------------------------------------------------------*/ $('.item-wrap a').magnificPopup({ type:'inline', fixedContentPos: false, removalDelay: 200, showCloseBtn: false, mainClass: 'mfp-fade' }); $(document).on('click', '.popup-modal-dismiss', function (e) { e.preventDefault(); $.magnificPopup.close(); }); /*----------------------------------------------------*/ /* Flexslider /*----------------------------------------------------*/ $('.flexslider').flexslider({ namespace: "flex-", controlsContainer: ".flex-container", animation: 'slide', controlNav: true, directionNav: false, smoothHeight: true, slideshowSpeed: 7000, animationSpeed: 600, randomize: false, }); /*----------------------------------------------------*/ /* contact form ------------------------------------------------------*/ $('form#contactForm button.submit').click(function() { $('#image-loader').fadeIn(); var contactName = $('#contactForm #contactName').val(); var contactEmail = $('#contactForm #contactEmail').val(); var contactSubject = $('#contactForm #contactSubject').val(); var contactMessage = $('#contactForm #contactMessage').val(); var g_recaptcha_response= $('#contactForm #g_recaptcha_response').val(); var data = {contactName:contactName , contactEmail:contactEmail , contactSubject:contactSubject ,contactMessage:contactMessage , g_recaptcha_response:g_recaptcha_response}; $.ajax({ type: "POST", url: "inc/sendEmail.php", data: data, success: function(msg) { // Message was sent if (msg == 'OK') { $('#image-loader').fadeOut(); $('#message-warning').hide(); $('#contactForm').fadeOut(); $('#message-success').fadeIn(); } // There was an error else { $('#image-loader').fadeOut(); $('#message-warning').html(msg); $('#message-warning').fadeIn(); } } }); return false; }); });
Mis pas de changement j'ai toujours le message que le recaptcha n'est pas coché
Tu peux me coller le code source de ta page ? ( le code de la page affichée avec le captcha lorsque tu fais un clic droit dans ton navigateur => afficher la source) ?
Peux tu aussi regarder dans la console (via les outils de debugage de ton navigateur) si il n'y aurait pas un message d'erreur ? A la limite file moi une capture écran stp.
Peux tu aussi regarder dans la console (via les outils de debugage de ton navigateur) si il n'y aurait pas un message d'erreur ? A la limite file moi une capture écran stp.
Tu n'as pas modifié ton code en tenant compte de mes précédentes remarques visiblement...dans le lien que tu m'as donné (http://ericgayraud.com/n/ceevee/index.php )
car quand je teste j'ai bien un message dans la console (après avoir cliqué sur le bouton pour envoyer...) et j'y vois que tu n'envoies que les variables suivantes :
car quand je teste j'ai bien un message dans la console (après avoir cliqué sur le bouton pour envoyer...) et j'y vois que tu n'envoies que les variables suivantes :
contactEmail
contactMessage
contactName
contactSubject
J'ai dut mal le faire alors car j'ai bien rajouté ce que tu m'as dit
var contactName = $('#contactForm #contactName').val(); var contactEmail = $('#contactForm #contactEmail').val(); var contactSubject = $('#contactForm #contactSubject').val(); var contactMessage = $('#contactForm #contactMessage').val(); var g_recaptcha_response= $('#contactForm #g_recaptcha_response').val(); var data = {contactName:contactName , contactEmail:contactEmail , contactSubject:contactSubject ,contactMessage:contactMessage , g_recaptcha_response:g_recaptcha_response};
Je suis désolé de relancer ce topic mais je n'est toujours pas trouvé de solución à mon problème.
D'après tout ce que j'ai lu il faut modifier le javassript pour rajouter la vérification du recaptcha avec un g-recaptcha-response mais après plusieurs essai je n'arrive jamais à rien.
Une âme charitable ?
D'après tout ce que j'ai lu il faut modifier le javassript pour rajouter la vérification du recaptcha avec un g-recaptcha-response mais après plusieurs essai je n'arrive jamais à rien.
Une âme charitable ?
Aurais l'amabilité et le savoir pour pouvoir rectifier le script ?
Car j'ai quasiment terminer le site et pour un détail comme celui ci je ne peu plus continuer.
Je t'en serai grandement reconnaissant.
Merci d'avance
J'espère que quelqu'un aura un peu de temps à me consacrer ou que tu puisse trouver un peu de temps car je me retrouve dans une impasse.
Mais bon c'est déjà super sympa d'avoir répondu.
Par contre j'ai une question sur un autre site j'avais fait le même formulaire avec le script qu'il y as sous "mais je n'arrive pas à enbriquer le fichier php avec les lignes de code pour le reCAPTCHA " et il marchait très bien ce que je n'arrive pas donc à comprendre c'est pourquoi rajouter du JavaScript alors quand php c'est tout à fait faisable.
Surtout qu'avec l'attribut "require" dans chaque champs le contrôle des champs est devenu inutile