Formulaire envoi mail php probleme redirection

Fermé
val55 - Modifié par val55 le 4/02/2014 à 15:37
stephane07 Messages postés 172 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 6 février 2014 - 6 févr. 2014 à 17:35
Bonjour à tous,

j'ai un problème avec un formulaire de contact.

Je veux que lorsque le formulaire est envoyé;
Un message de confirmation d'envoi s'affiche à l'utilisateur sur ma page "traitement.php"
OU sinon un message d'erreur s'affiche sur cette même page.

Il me semble que le script est juste mais je ne sais pas pourquoi la redirection ne s'effectue pas.

En fait, une fois que j'appuie sur le bouton "envoyer" on croirait qu'il ne se passe rien du tout. Pas de redirection, pas de message d'erreur, pas de message de confirmation.
Cependant le mail est bien envoyé!!

J'aimerais que quelqu'un puisse me dire pourquoi la redirection ne s'affiche pas :)

(Je débute avec le php, et j'ai réadapté un code trouvé sur le net)

voila le code de ma page traitement.php:

<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement 
remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','***@***'); // remplacer par votre email
define('MAIL_SUJET','Demande contact');
 
// vérification des champs


if (empty($_POST['nom'])) 
$message .= "Votre nom<br/>";
if (empty($_POST['email'])) 
$message .= "Votre email<br/>";
if (empty($_POST['phone'])) 
$message .= "Votre numero de telephone<br/>";
if (empty($_POST['renseignements'])) 
$message .= "Votre message<br/>";

 
// si un champ est vide, on affiche le message d'erreur et on stoppe le script

if (strlen($message) > strlen($msg_erreur)) {
   echo $message; die();
}

 
// sinon c'est ok => on continue
foreach($_POST as $index => $valeur) {
  $$index = stripslashes(trim($valeur));
}
 

 
//Préparation de l'entête du mail:
$mail_entete  = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
             ."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
 
// préparation du corps du mail
$mail_corps   = "Message de : $nom\n";
$mail_corps  .= "Adresse email : $email\n";
$mail_corps  .= "Compagnie : $compagnie\n";
$mail_corps  .= "Téléphone : $phone\n";
$mail_corps  .= "Message : \n $renseignements";

 
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
  //Le mail est bien expédié
  echo $msg_ok;
} else {
  //Le mail n'a pas été expédié
  echo "Une erreur est survenue lors de l'envoi du formulaire par email";
}
 
?> 






Et voici le code html correspondant:






<form id='form_contact' method="post" action="traitement.php" class="clear">
  
   <div class="col-left">
    <p class="placeholder">
    <label>Nom *</label> 
    <input class="text-input large-input" type="text" name="nom" value="<?php echo $nom; ?>" >
    </p>
   
    <p class="placeholder">
    <label>Compagnie</label>
    <input class="text-input large-input" type="text" name="compagnie" value="<?php echo $compagnie; ?>" >
    </p>
   </div>
   
   <div class="col-right">
    <p class="placeholder">
    <label>Téléphone *</label> 
    <input class="text-input large-input" type="text" name="phone" value="<?php echo $phone; ?>" >
    </p>
    
    <p class="placeholder">
    <label>Adresse E-mail * </label>  
    <input name="email"class="text-input large-input" type="text" value="<?php echo $email; ?>">
    </p>
   </div>
   
   <div class="clear"></div>
   
   <p class="placeholder">
   <label>Renseignements * </label> 
   <textarea name="renseignements" ><?php echo $renseignements; ?></textarea>
   </p>
   
   <button  style="float:right;" class="button" type="submit">Envoyer</button>
   
   
   <script type="text/javascript">
   form.ajax("form_contact");
   form.placeholder();
   form.autoFocus();
   </script>
   
  <input type="hidden" name="form_name" value="form_contact"/>
  </form>


Merci de m'avoir lu, j'attend votre aide!!!


A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
4 févr. 2014 à 16:08
Salut,

Apparemment tu utilises ajax pour soumettre ton formulaire.

Pour vérifier que ton code PHP est correct, supprime le code javascript de ta page HTML pour soumettre ton formulaire de manière classique : tu devrais alors voir ton message de confirmation ou d'erreur suite à l'envoie du mail.

Si tu souhaites conserver ajax, il faut que tu modifies ton code javascript pour récupérer et afficher le résultat de la requête. Si tu veux plus d'aide pour cette partie, il nous faudrait le reste de ton code javascript.

Bonne journée
0
stephane07 Messages postés 172 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 6 février 2014 1
6 févr. 2014 à 17:35
A quel niveau est ce que tu penses faire la redirection?
0