Parse error: syntax error, unexpected 'mailto'

Bonjour, j'ai un soucis avec ma page PHP, j'ai créer un formulaire de contact HTML et PHP et en appuyant sur ENVOYER, j'ai une erreur, la voici : donc

Parse error: syntax error, unexpected 'mailto' (T_STRING) in /var/www/sda/2/7/lasourisetlordi/co.php on line 14

Voici ma page php telle que je l'ai écrite :

<?php
$adresse=".......@free.fr";
$from.="From: $prenom $nom <$email>\r\n";
$from.="Reply-To: $prenom $nom <$email>\n";
$from.="X-priority:3\n";
$texte.="<html>";
$texte.="htmlentities($texte)";
$texte.="</html>";
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html";
if (mail($adresse,$sujet,$texte,$from))
echo <center><font color=green><br><br><br><h2>Formulaire envoyé ! Nous vous répondrons rapidement. Merci</h2></font><br><a href=/>Cliquez ici pour revenir à l'accueil</a></center>;
else
echo <center><font color=red><br><br><br><h2>Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href="mailto:$adresse">classiquement</a>;
?> 

La ligne 14 correspond à : echo <center><font color=red><br><br><br><h2>Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href="mailto:$adresse">classiquement</a>;
?> 


et ma page html :
<form method="post" action="traitement.php">

   <fieldset>

       <fieldset style="border:solid 1px black; padding:20px; width:250px; color:midnightblue; font-family:verdana;"><legend>Formulaire de contact</legend> 
      <label for="nom">Nom :</label><br>
       <input type="text" name="nom" id="nom" /><br/><br/>

       <label for="prenom">Prénom :</label><br>
       <input type="text" name="prenom" id="prenom" placeholder='Votre prénom'/><br/><br/>
 
       <label for="email">E-mail : </label><br>
       <input type="email" name="email" id="email" required /><br/><br/>
<label for="message">Message :</label><br>
<textarea name="message" rows="8" cols="30">
.</textarea>
<input type="submit" value="Envoyer" />
              </fieldset>


Vous remerciant par avance de l'aide que vous m'apporterais pour corriger cette erreur

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. Modérateur
    Avec la coloration syntaxique c'est assez clair, il manque des ' ou " à tes echo.
    Même si ça ne semble pas obligatoire syntaxiquement, c'est indispensable pour avoir un code propre.
    1. Merci, malheureusement, je n'ai pas compris la reponse
      Pourrais-tu m'écrire le bon code de la ligne ? merci
    2. Modérateur
      @ber30100
      echo <center><font color=green><br><br><br><h2>Formulaire envoyé ! Nous vous répondrons rapidement. Merci</h2></font><br><a href=/>Cliquez ici pour revenir à l'accueil</a></center>;
      

      est à remplacer par :

      echo "<center><font color='green'><br><br><br><h2>Formulaire envoyé ! Nous vous répondrons rapidement. Merci</h2></font><br><a href=''/>Cliquez ici pour revenir à l'accueil</a></center>";
      
    3. @jordane45Merci....mais rien n'y fait ... lorsque je corrige l'erreur d'autre apparait sur cette ligne par ex :
      Parse error: syntax error, unexpected ''/>Cliquez ici pour revenir à' (T_ENCAPSED_AND_WHITESPACE), expecting ',' or ';' in /var/www/sda/2/7/lasourisetlordi/co.php on line 14
    4. Modérateur
      Tu as le même souci avec ton autre echo ... regarde bien....
    5. Je sais que les deux lignes echo sont erronées mais je ne sais pas où se trouve les erreurs d'ou la demande
  2. Modérateur
    Bon... je ne sais pas ce que tu fais... mais de toutes façons si tu as des erreurs... il nous :
    1 - Le message d'erreur COMPLET
    2 - Le code que tu as écris... (suite aux modifications...)

    Bref...
    essaye ça
    <?php
    $adresse=".......@free.fr";
    $from = "";
    $from.="From: $prenom $nom <$email>\r\n";
    $from.="Reply-To: $prenom $nom <$email>\n";
    $from.="X-priority:3\n";
    $from.="MIME-Version: 1.0\r\n";
    $from.="Content-Type: text/html; charset='utf-8'";
    
    $texte = "";
    $texte.="<html><body>";
    $texte.= htmlentities($texte);
    $texte.="</body></html>";
    
    if (mail($adresse,$sujet,$texte,$from)){
      echo "<center>
             <font color=green>
               <br><br><br>
               <h2>Formulaire envoyé ! Nous vous répondrons rapidement. Merci</h2>
              </font>
              <br><a href=/>Cliquez ici pour revenir à l'accueil</a>
            </center>";
    }else{
      echo "<center>
             <font color=red><br><br><br>
               <h2>
                 Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande
               </h2>
             </font>
             <br>Contactez nous plus <a href='mailto:$adresse'>classiquement</a>
           </center>";
    }
    ?> 
    


    1. Merci de ton aide et de ton temps , j’ai pris ton code complet et maintenant dès la reception du mail, j'ai dans le corps de la lettre : <html> et non le message que j'ai essayé d'envoyer et j'ai toujours le destinataire et l'expediteur identique
    2. Modérateur

      dans le corps de la lettre : <html> et non le message que j'ai essayé d'envoyer et j'ai toujours le destinataire et l'expediteur identique

      Tu peux traduire ???

      Sachant que tu nous ne savons pas ce que contiennent tes variables ($texte , $nom, $prenom.... )
      Alors comment pense-tu que nous puissions t'aider ???!
      J'ai égaré ma boule de cristal... ça va compliquer les choses.... ^^
    3. Pour dire les choses clairement, lorsque je remplis le formulaire : nom, prénom, email et message et j'appuie sur ENVOYER, dès la reception du mail dans ma boite on peut lire que l'expediteur à la meme adresse que le destinataire (DE lasourisetlordi@free.fr A lasourisetlordi@free.fr) dont il y a une erreur de ce côté , dans le corps de la lettre, aucun message provenant du formulaire ni nom, prénom et mail de la personne qui le rempli... et les variables
      Excuse-moi, j'ai du mal à comprendre ce que c'est ? ..
    4. Modérateur
      Dans ces lignes de code
      $from.="From: $prenom $nom <$email>\r\n";
      $from.="Reply-To: $prenom $nom <$email>\n";
      

      Tu as des variables : $prenom $nom $email
      D'où proviennent elles ? Comment les initialises tu ?

      Je t'invite vivement à lire ET à appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

      Reviens nous voir une fois les conseils du lien appliqués et donc le code corrigé si tu persistes à avoir des soucis....
    5. L'objectif du formulaire, c'est de recevoir dans ma boite le message de la personne qui me l'envoie avec son nom, prénom, son adresse electronique et son message ...

      Pourquoi l'adresse d'envoi et la meme que l'adresse emise ?
      merci de ton aide, je vais y travailler ... je reviendrais vers vous