Gestion des e-mails

Bonjour,

j'é fé un formulére d'e-mail en php. mé kan je le mé en ligne ca marke :
Parse error: syntax error, unexpected '[', expecting ']' in /home/formulaire.php on line 11

alor ke la ligne 11 c'é : <?php

kelkin pe m'éder?

voila le code complet:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Envoi de message</title>
</head>

<body>
<h1>Envoi de message</h1>
<?php
if (empty($_POST[["email_exp"]));
?>
<form vname="FormName" action="formulaire.php" method="post" enctype="multipart/form-data" name="form">
<table border="0" width="137">
<tr><td>De :</td><td><input type="text" name="email_exp" size="35"></td></tr>
<tr><td>A : </td><td><input type="text" name="email_dest" size="35" value="nom@adresse.com"></td></tr>
<tr><td>Sujet</td><td><input type="text" name="email_sujet" size="35"></td></tr>
<tr><td>Message</td><td><textarea rows="12" name="email_message" cols="60"></textarea></td></tr>
<tr><td>Fichier joint :</td><td><input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input type="file" size="16" name="NomFichier">
</td></tr>
<td><input type="submit" value="Envoyer"></td>
</table>
</form>
<?php
else:
$erreur=false;
$erreur_nom="";
if(empty($_POST["email_message"]))
{
$erreur=true;
$erreur_nom=$erreur."Vous devez saisir un texte dans la zone message<br>";
}
if(ereg("@",$_POST[["email_exp"]))
{
$erreur=true;
$erreur_nom=$erreur_nom."Votre adresse e-mail est incorrecte<br>";
}
if($erreur)
{
echo "<center>"
echo "<b><font size='4'><br>Votre formulaire comporte les erreurs suivantes<br><br></font></b>";
echo $erreur_nom;
echo ("<b><center><font size="4" face="tahoma">Votre demande a bien été enregistrée</font></center>");
$envoi=$mail($_POST["email_dest"], $_POST["email_sujet"], $_POST["email_message"], "From"$_POST["email_exp"]);
}
endif;
?>
</body>
</html>

7 réponses

  1. if(ereg("@", $_POST["email_exp"]))
    { 
        $erreur=true; 
        $erreur_nom=$erreur_nom."Votre adresse e-mail est incorrecte<br>"; 
    }
    Ça veut dire que si "@" est présent dans $_POST['email_exp'], ce qui est entre les accolades est exécuté.
    1. mintenant je n'ai plus de message d'erreurs mai j'ai 1 otre probleme (tjr concernant le formulaire.php):

      je tape bien mon adresse e-mail dans le formulère (avec @) mais quant j'envoi, j'ai le message d'erreur qui stipule une adresse e-mail incorrecte:

      Votre formulaire comporte les erreurs suivantes

      Votre adresse e-mail est incorrecte

      il y a surement un truc que j'ai raté dans le code mai je ne sai pas
      1. au cas ou voila le nouveau code corigé:
        <?php
        if (empty($_POST["email_exp"])):
        ?>
        <form vname="FormName" action="formulaire.php" method="post" enctype="multipart/form-data" name="form">
        <table border="0" width="137">
        <tr><td>De :</td><td><input type="text" name="email_exp" size="35"></td></tr>
        <tr><td>A : </td><td><input type="text" name="email_dest" size="35" value="nom@domaine.com"></td></tr>
        <tr><td>Sujet</td><td><input type="text" name="email_sujet" size="35"></td></tr>
        <tr><td>Message</td><td><textarea rows="12" name="email_message" cols="60"></textarea></td></tr>

        <td><input type="submit" value="Envoyer"></td>
        </table>
        </form>
        <?php
        else:
        $erreur=false;
        $erreur_nom="";
        if(empty($_POST["email_message"]))
        {
        $erreur=true;
        $erreur_nom=$erreur_nom."Vous devez saisir un texte dans la zone message<br>";
        }
        if(ereg("@", $_POST["email_exp"]))
        {
        $erreur=true;
        $erreur_nom=$erreur_nom."Votre adresse e-mail est incorrecte<br>";
        }
        if($erreur)
        {
        echo '<center>';
        echo '<b><font size="4"><br>Votre formulaire comporte les erreurs suivantes<br><br></font></b>';
        echo $erreur_nom;
        echo '</center>';
        }else{
        echo '<b><center><font size="4" face="tahoma">Votre demande a bien été enregistrée</font></center>';
        $envoi=$mail($_POST["email_dest"], $_POST["email_sujet"], $_POST ["email_message"], 'From :'.$_POST["email_exp"]);
        }
        endif;
        ?>
        </body>
        </html>
    2. L'erreur est dans ce morceau : « 'From :' $_POST["email_exp"] »
      Il faut un "." entre la variable est la chaine "From :"
      1. j'ai resolu quelque éreurs mais j'ai 1 probléme avec la ligne 46 :

        $envoi=$mail ($_POST["email_dest"], $_POST["email_sujet"], $_POST ["email_message"], 'From :' $_POST["email_exp"]);

        ca m'affiche ca :
        Parse error: syntax error, unexpected T_VARIABLE in /formulaire.php on line 46

        et si je met

        $envoi=$mail .($_POST["email_dest"], $_POST["email_sujet"], $_POST ["email_message"], 'From :' $_POST["email_exp"]);

        j'ai :

        Parse error: syntax error, unexpected ',' in /formulaire.php on line 46
        1. Tu mélanges un peu la syntaxe du PHP avec celle d'un autre langage (Python).

          Structure conditionnelle en PHP :
          <?php
          if(/* condition */) {
              // si la condition est remplie
          } else {
              // Sinon
          }
          Les accolades ne sont pas nécessaire quand il n'y a pas plus d'une instruction.
          1. désolé mais je n'ai pas l'habitude de marquer en francais j'apprend depuis pas longtemp. c'est difficil :-)!

            j'ai fait la correction mais ca marque ceci:

            Parse error: syntax error, unexpected T_ELSE in formulaire.php on line 27

            j'ai changé la place du

            <?php
            if (empty($_POST[["email_exp"]));
            ?>

            en le mettant dan le <head></head> mais ca marque toujour la même erreur.
            1. Fait un effort d'écriture !
              Et regarde à la ligne suivante, ça saute aux yeux :
              if (empty($_POST[["email_exp"]));

              Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.