Afficher un message de validation dans un formulaire ?

Résolu/Fermé
Ame-perdue - Modifié par jordane45 le 9/04/2015 à 16:29
 Ame-perdue - 10 avril 2015 à 11:46
Bonjour,

Je suis en train de créer une page de contact pour un site web.
J'essaye d'afficher en vain mon message de validation ("message envoyé") dans ma page contact.
Mais je n'y arrive pas. Effectivement lorsque je clique sur envoyer je suis redirigé vers une page blanche et le message s'y affiche. Mon email est bien arrivé !

Je voudrais que tout se passe sur la page contact et que lorsque je clique sur envoyer les champs se vident et un petit "message envoyé" s'affiche en-dessous du formulaire.

Voici mon code:
<?php

if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']))
{
    $destinataire = '***@***';
    $email = htmlentities($_POST['email']);
    if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{| }~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{
|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&','&',$email)))
  {
  $sujet = 'Contact: '.stripslashes($_POST['sujet']);
  $message = stripslashes($_POST['message']);
  $headers = "From: <".$email.">\n";
  $headers .= "Reply-To: ".$email."\n";
  $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
  if(mail($destinataire,$sujet,$message,$headers))
  {
  echo "<strong>Votre message a bien été envoyé.</strong>";
  }
  else
 {
 echo "<strong style=\"color:#ff0000;\">Une erreur s'est produite lors de l'envois du message.</strong>";  
 }
 }
else
{
echo "<strong style=\"color:#ff0000;\">L'email que vous avez entré est invalide.</strong>";
}
}
else
{
?>
<form action="Contact.php" method="post">

<legend>Formulaire de contact</legend>
<label for="email" style="display:inline-block;width:100px;"><strong>Votre Email:</strong></label> <input type="text" name="email" id="email" /><br />
<label for="sujet" style="display:inline-block;width:100px;"><strong>Sujet:</strong></label> <input type="text" name="sujet" id="sujet" /><br />
<label for="message"><strong>Message:</strong></label><br />
<textarea cols="70" rows="4" name="message" id="message"></textarea><br />
<input type="submit" value="Envoyer" />
</form>

<?php
}
?>

Merci d'avance ! Je n'ai plus aucune idée et je cherche depuis 2 jours sans résultats. Il va sans dire que je débute en php.


EDIT : Ajout des balises de code.
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.

5 réponses

Génial !

@Thorak83: Je te remercierai jamais assez, ça fonctionne parfaitement :)

Bon je vais pas vous embêtez plus que ça, toutes mes questions ont trouvé leur réponse. Aussi, je vais clôturer le sujet dans la bonne humeur.

Un grand/gros/immense MERCI à tous pour votre aide :)
1