Formulaire PHP, la page s'affiche au lieu de travailler
Résolu
jimmy1120112
Messages postés
619
Date d'inscription
Statut
Membre
Dernière intervention
-
jimmy1120112 Messages postés 619 Date d'inscription Statut Membre Dernière intervention -
jimmy1120112 Messages postés 619 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai créer il y a peu un site web avec un formulaire de contact ici : Mon ancien site perso
Lorsque vous envoyez un mail en bas du site, quand vous avez fait une erreur de manip il vous l'indique en bas en rouge, et quand l'envoi est fait il vous le signal aussi.
J'ai voulu reproduire ceci sur un second site mais impossible d'afficher le retour de réponse de la page php vers le site, c'est a dire, lorsque je clique sur envoyé il m'envoie vers la page process.php au lieu d'exécuter le php et d'afficher le message à coté du formulaire comme voulu dans le site.
J'ai mis le site dans un dossier test du ftp pour que vous voyez la différence qui vas pas :
Site qui marche pas et Site qui marche
Merci d'avance !
Pensez a mettre RÉSOLU et de revenir pour signaler la résolution du problème.
Cordialement.
Jim
J'ai créer il y a peu un site web avec un formulaire de contact ici : Mon ancien site perso
Lorsque vous envoyez un mail en bas du site, quand vous avez fait une erreur de manip il vous l'indique en bas en rouge, et quand l'envoi est fait il vous le signal aussi.
J'ai voulu reproduire ceci sur un second site mais impossible d'afficher le retour de réponse de la page php vers le site, c'est a dire, lorsque je clique sur envoyé il m'envoie vers la page process.php au lieu d'exécuter le php et d'afficher le message à coté du formulaire comme voulu dans le site.
J'ai mis le site dans un dossier test du ftp pour que vous voyez la différence qui vas pas :
Site qui marche pas et Site qui marche
Merci d'avance !
Pensez a mettre RÉSOLU et de revenir pour signaler la résolution du problème.
Cordialement.
Jim
A voir également:
- Formulaire PHP, la page s'affiche au lieu de travailler
- Whatsapp formulaire opposition - Guide
- Impossible de supprimer une page word - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Trouver un lieu avec coordonnées gps - Guide
7 réponses
Il manquait cette ligne pour relier et faire fonctionner les scripts :
Merci ThEBiShOp pour ton aide !
Je reviens pour vous montrer le résultat quand j'aurai fini ;)
<script type="text/javascript" src="scripts/jquery.fancybox-1.3.4.pack.js"></script>
Merci ThEBiShOp pour ton aide !
Je reviens pour vous montrer le résultat quand j'aurai fini ;)
ThEBiShOp
Messages postés
8411
Date d'inscription
Statut
Contributeur
Dernière intervention
1 566
ok cool ^^
Bonjour,
quand j'essaye d'envoyer un mail ça a l'air de fonctionner, non ?
quand j'essaye d'envoyer un mail ça a l'air de fonctionner, non ?
Bonjour,
Oui ça fonctionne, j'ai reçu le mail, mais normalement la réponse "Votre message est bien envoyé" doit être a coté du bouton "envoyé" et non dans une nouvelle page, qui est la page d'exécution php.
J'aimerais avoir le même résultat que sur le lien qui marche ici (mon ancien site) : http://www.jimmy-babouot.com/V2/#contact
Voyez vous la différence ?
Merci beaucoup !
Oui ça fonctionne, j'ai reçu le mail, mais normalement la réponse "Votre message est bien envoyé" doit être a coté du bouton "envoyé" et non dans une nouvelle page, qui est la page d'exécution php.
J'aimerais avoir le même résultat que sur le lien qui marche ici (mon ancien site) : http://www.jimmy-babouot.com/V2/#contact
Voyez vous la différence ?
Merci beaucoup !
Voici Process.php :
Merci encore !
<?php //Retrieve form data. //GET - user submitted data using AJAX //POST - in case user does not support javascript, we'll use POST instead $name = ($_GET['name']) ? $_GET['name'] : $_POST['name']; $email = ($_GET['email']) ?$_GET['email'] : $_POST['email']; $numero = ($_GET['numero']) ?$_GET['numero'] : $_POST['numero']; $comment = ($_GET['comment']) ?$_GET['comment'] : $_POST['comment']; //flag to indicate which method it uses. If POST set it to 1 if ($_POST) $post=1; //Simple server side validation for POST data, of course, you should validate the email if (!$name) $errors[count($errors)] = 'Entrez votre nom'; if (!$email) $errors[count($errors)] = 'Entrez votre email.'; if (!$comment) $errors[count($errors)] = 'Entrez votre texte.'; //if the errors array is empty, send the mail if (!$errors) { //recipient $to = 'Paris Toiture <paristoiture@paristoiture.fr>'; //sender $from = $name . ' <' . $email . '>'; //subject and the html message $subject = 'Message du site de la part de ' . $name; $message = ' <META HTTP-EQUIV="Content-Type" CONTENT="charset=ISO-8859-1"> <HTML xmlns="http://www.w3.org/1999/xhtml"> <HEAD></HEAD> <body> <table> <tr><td>Nom : </td><td>' . $name . '</td></tr> <tr><td>Email : </td><td>' . $email . '</td></tr> <tr><td>Numero : </td><td>' . $numero . '</td></tr> <tr><td>Message : </td><td>' . nl2br($comment) . '</td></tr> </table> </body> </html>'; //send the mail $result = sendmail($to, $subject, $message, $from); //if POST was used, display the message straight away if ($_POST) { if ($result) echo 'Votre message a bien ete envoye.'; else echo 'Desoler, votre message ne peut etre envoye.'; //else if GET was used, return the boolean value so that //ajax script can react accordingly //1 means success, 0 means failed } else { echo $result; } //if the errors array has values } else { //display the errors message for ($i=0; $i<count($errors); $i++) echo $errors[$i] . '<br/>'; exit; } //Simple mail function with HTML header function sendmail($to, $subject, $message, $from) { $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; $headers .= 'From: ' . $from . "\r\n"; $result = mail($to,$subject,$message,$headers); if ($result) return 1; else return 0; } ?>
Merci encore !
De plus il ne fonctionne pas parfaitement puisque lorsqu'il n'y a rien dans les zones d'écriture et que l'on valide l'envoi, au lieu de retourner comme quoi il y a des infos manquantes, il met la partie du php qui s'exécute.
Est-ce que ça viens du php ou de la page html qui n'est pas configuré correctement ?
Merci pour le coup de main.
Est-ce que ça viens du php ou de la page html qui n'est pas configuré correctement ?
Merci pour le coup de main.
Voici le function.js modifier pour le mail uniquement :
$(document).ready(function () { $("a.fancybox").fancybox({ 'overlayShow' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic' }); //if submit button is clicked $('#submit').click(function () { //Get the data from all the fields var name = $('input[name=name]'); var email = $('input[name=email]'); var emailAddress = $('input[name=email]').val(); var website = $('input[name=website]'); var comment = $('textarea[name=comment]'); function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_'{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_'{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); return pattern.test(emailAddress); }; //Simple validation to make sure user entered something //If error found, add highlight class to the text field if (name.val() == '') { name.addClass('highlight'); $('.error').replaceWith('<div class="error">Please enter your name</div>'); $('.error').fadeIn('slow'); $(name).focus(); return false; } else { name.removeClass('highlight'); $('.error').hide(); } if (email.val() == '') { email.addClass('highlight'); $('.error').replaceWith('<div class="error">Please enter your email</div>'); $('.error').fadeIn('slow'); $(email).focus(); return false; } else if (!isValidEmailAddress(emailAddress)) { email.addClass('highlight'); $('.error').replaceWith('<div class="error">Please enter a valid email</div>'); $('.error').fadeIn('slow'); $(email).focus(); return false; } else { email.removeClass('highlight'); $('.error').hide(); } if (comment.val() == '') { comment.addClass('highlight'); $('.error').replaceWith('<div class="error">Please enter your message</div>'); $('.error').fadeIn('slow'); $(comment).focus(); return false; } else { comment.removeClass('highlight'); $('.error').hide(); } //organize the data properly var data = 'name=' + name.val() + '&email=' + email.val() + '&website=' + website.val() + '&comment=' + encodeURIComponent(comment.val()); //disabled all the text fields $('.text').attr('disabled', 'true'); //show the loading sign $('.loading').show(); //start the ajax $.ajax({ //this is the php file that processes the data and send mail url : "process.php", //GET method is used type : "GET", //pass the data data : data, //Do not cache the page cache : false, //success success : function (html) { //if process.php returned 1/true (send mail success) if (html == 1) { //hide the form $('.form').fadeOut('slow'); //show the success message $('.done').fadeIn('slow'); //if process.php returned 0/false (send mail failed) } else alert('Sorry, unexpected error. Please try again later.'); } }); //cancel the submit button default behaviours return false; }); });
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici aussi les appels dans le header au lieu du fichier main.js :
Édit : Le site a été actualiser ici : http://www.paristoiture.fr/autre/#!/Contact
<script type="text/javascript" src="js/html5.js"></script> <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/jquery.color.js"></script> <script type="text/javascript" src="js/jquery.transform.js"></script> <script type="text/javascript" src="js/bgStretch.js"></script> <script type="text/javascript" src="js/superfish.js"></script> <script type="text/javascript" src="js/switcher.js"></script> <script type="text/javascript" src="js/googleMap.jsjs/cform.js"></script> <script type="text/javascript" src="js/jquery.mousewheel.js"></script> <script type="text/javascript" src="js/mwheelIntent.js"></script> <script type="text/javascript" src="js/jquery.jscrollpane.min.js"></script> <script type="text/javascript" src="js/jquery.prettyPhoto.js"></script> <script type="text/javascript" src="js/jquery.jplayer.min.js"></script> <script type="text/javascript" src="js/script.js"></script> <script type="text/javascript" src="js/functions.js"></script>
Édit : Le site a été actualiser ici : http://www.paristoiture.fr/autre/#!/Contact
Et voila le résultat : Page contact du site Paris Toiture
Il manquait la francybox, le jQuerry qui n'était pas à jour, le php a repris une tite modif, la feuille de style a été modifier aussi, et functions.js a été épurer et redéfinit.
Merci beaucoup ThEBiShOp pour le coup de main, à la longue tout seul on fini par lâcher l'affaire...
A bientôt !
Cordialement.
Jim
Il manquait la francybox, le jQuerry qui n'était pas à jour, le php a repris une tite modif, la feuille de style a été modifier aussi, et functions.js a été épurer et redéfinit.
Merci beaucoup ThEBiShOp pour le coup de main, à la longue tout seul on fini par lâcher l'affaire...
A bientôt !
Cordialement.
Jim