Formulaire PHP, la page s'affiche au lieu de travailler

Résolu/Fermé
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 - Modifié par jimmy1120112 le 21/02/2013 à 20:42
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 - 4 mars 2013 à 14:24
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
A voir également:

7 réponses

jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
4 mars 2013 à 11:59
Il manquait cette ligne pour relier et faire fonctionner les scripts :

<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 ;)
1
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
4 mars 2013 à 12:33
ok cool ^^
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
4 mars 2013 à 09:01
Bonjour,

quand j'essaye d'envoyer un mail ça a l'air de fonctionner, non ?
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
Modifié par jimmy1120112 le 4/03/2013 à 10:04
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 !
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
4 mars 2013 à 10:08
Oui, je vois, j'imagine que ça doit être un léger soucis dans les fonctions ajax, mais sans code c'est difficile à dire
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
4 mars 2013 à 10:11
Tu veux quel code ?
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
4 mars 2013 à 10:26
process.php déjà
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
Modifié par jimmy1120112 le 4/03/2013 à 10:28
Voici Process.php :

<?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 !
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
Modifié par jimmy1120112 le 4/03/2013 à 10:47
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.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
4 mars 2013 à 10:55
il semblerait que ton fichier functions.js ne soit pas appelé (visiblement, c'est lui qui gère cet affichage du formulaire) contrairement à la page qui fonctionne.

D'ailleurs tu as des appels à des fichiers .js en fin de page, ça n'aide pas pour la lecture du code
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
4 mars 2013 à 10:58
En effet je viens de le voir aussi, dedans il y a une partie pour l'envoie du mail.

Je l'appel et j'essaie.

Que veux tu d'autre ?
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
4 mars 2013 à 11:03
C'est tout, je pense que le soucis vient de là. ^^
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
4 mars 2013 à 11:05
Je l'ai charger mais rien ne change...

Lorsque je charge d'autre fichier qui sont en bas de page, le site s'ouvre plus :D
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
Modifié par jimmy1120112 le 4/03/2013 à 11:49
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; 
 }); 
});  
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
Modifié par jimmy1120112 le 4/03/2013 à 11:52
Voici aussi les appels dans le header au lieu du fichier main.js :
<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
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
4 mars 2013 à 11:55
YOUPI OURRAAAAA !!!

J'ai trouver !!!

J'affine mon truck et je te dit ce que c'est
0
jimmy1120112 Messages postés 617 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 7 décembre 2014 54
Modifié par jimmy1120112 le 4/03/2013 à 14:34
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
0