Erreur dans mon code php/html

Résolu
Bonjour, je suis en train de faire un formulaire de contact pour un site internet et j'ai l'erreur suivante que je ne comprends pas : Parse error: syntax error, unexpected '$header' (T_VARIABLE) in C:\wamp64\www\tests\formulaire_de_contact.php on line 6
Voici mon code :
<?php
if(isset($_POST['mailform']))
{
 if(!empty($_POST['nom']) AND !empty($_POST['tel']) AND !empty($_POST['adresse de dep']) AND !empty($_POST['adresse dariv']) AND !empty($_POST['message']) 
 
  $header="MIME-Version: 1.0\r\n";
  $header.='From:"xxx.fr"<***@***>'."\n";
  $header.='Content-Type:text/html; charset="uft-8"'."\n";
  $header.='Content-Transfer-Encoding: 8bit';

  $message='
  <html>
   <body>
    <div align="center">
     <u>Nom de l\'expéditeur :</u>'.$_POST['nom'].'<br />
     <u>Numéro de l\'expéditeur :</u>'.$_POST['tel'].'<br />
     <u> Adresse de départ :</u>'.$_POST['adresse de dep'].'<br />
     <u> Adresse d\'arrivée :</u>'.$_POST['adresse dariv'].'<br />
     <u> Heure de la course ou informations complémentaires :</u>'.$_POST['message'].'<br />
     <br />
     '.nl2br($_POST['message']).'
     <br />
    </div>
   </body>
  </html>
  ';

  mail("***@***", "CONTACT - x.fr", $message, $header);
  $msg="Votre message a bien été envoyé !";
 
 else
 {
  $msg="Tous les champs doivent être complétés !";
 }
}
?>
<html>
 <head>
  <meta charset="utf-8" />
 </head>
 <body>
  <h2>Formulaire de contact !</h2>
  <form method="POST" action="">
   <input type="text" name="nom" placeholder="Votre nom" value="<?php if(isset($_POST['nom'])) { echo $_POST['nom']; } ?>" /><br /><br />
   <input type="number" name="tel" placeholder="Votre numéro de téléphone" value="<?php if(isset($_POST['tel'])) { echo $_POST['tel']; } ?>" /><br /><br />
   <input type="text" name="adresse de dep" placeholder="Votre adresse de départ" value="<?php if(isset($_POST['adresse de dep'])) { echo $_POST['adresse de dep']; } ?>" /><br /><br /> 
   <input type="text" name="adresse dariv" placeholder="Votre adresse d'arrivée" value="<?php if(isset($_POST['adresse dariv'])) { echo $_POST['adresse dariv']; } ?>" /><br /><br /> 
   <textarea name="message" placeholder="Votre message contenant l\'heure de la course ainsi que si besoin des informations complémentaires "><?php if(isset($_POST['message'])) { echo $_POST['message']; } ?></textarea><br /><br />
   <input type="submit" value="Envoyer !" name="mailform"/>
  </form>
  <?php
  if(isset($msg))
  {
   echo $msg;
  }
  ?>
 </body>
</html>


Je vous remercie d'avance pour vos réponses, cela fait une semaine que je bloque sur cette erreur :-P

4 réponses

  1. Modérateur
    Salut,

    <u> Adresse d\'arrivée :</u>'.$_POST['adresse dariv'].'<br />


    Nommer des variables avec des espaces, déjà, c'est 1ère source d'ennuis...

    Donc, commencer par ne pas utiliser d'espace dans les variables, au besoin les remplacer par des underscores (_).
    1
    1. Merci de votre réponse j'essaierai ça plus tard et je vous en referai part.
      0
  2. Bonjour

    Même si ce qui est dit dans les réponses précédentes est vrai, cela n'a aucun rapport avec ton message d'erreur.
    Le message d'erreur vient du fait que tu as oublié de fermé la parenthèse du if.
    1
    1. Ce qui est dit plus haut contribue à la résolution.
      0
    2. Je n'ai pas dit le contraire, j'ai même approuvé les autres contributions. J'ai juste dit que les problèmes qu'elles résolvent ne sont pas celui qui était soumis et qui portait sur un message d'erreur bien défini.
      0
    3. Contributeur
      il s'agit du
      if
      en ligne 4, il y manque une parenthèse fermante en fin de ligne.
      le message d'erreur t'informe que php est surpris de voir
      $header
      en ligne 6.
      l'erreur est juste avant: qu'as-tu fait pendant une semaine?
      0
    4. @yg_beMerci beaucoup, je n'y avais pas fait attention :)
      0
  3. Frustrant ... mais c'est juste un problème d'accolades. Regardes ton code, si je ne me trompe pas, tu as oublié une accolade ouvrante "{"
    0
    1. Je vois. C'est ce que je pensais. Merci. Auriez vous l'amabilité de me dire où se trouve cette accolade car j'ai beau chercher je ne trouve pas. Merci d'avance et bonne année
      0
    2. Ligne 31
      0
    3. Contributeur
      @Mounir--Bcela sera le troisième message d'erreur, occupons-nous d'abord du premier.
      0
  4. J'ai donc réglé le problème de la parenthèse ligne 4 grâce à vous mais j'ai maintenant le message d'erreur suivant : Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\wamp64\www\tests\formulaire_de_contact.php on line 31. Quelqu'un pourrait-il m'aider svp?
    0
    1. Contributeur
      si tu souhaites que le IF s'applique à plusieurs instructions, tu dois les entourer d'accolades.
      il faut donc probablement une accolade ouvrante la ligne après le IF, et une accolade fermante la ligne avant le ELSE.
      0
    2. @yg_beOh!! Merci beaucoup! Cela fonctionne enfin!
      0
    3. Contributeur
      @Youyou_44parfait! peux-tu marquer le sujet comme résolu (via la petite roue dentée à droite du titre)?
      0
    4. @yg_beDois-je aller dans ne plus suivre??
      0
    5. Contributeur
      @Youyou_44tu as ouvert la discussion sans être inscrit, tu ne peux sans doute donc pas la fermer.
      0