formulaire inscription array mail

Petit nouveau ! | 4 Messages

22 févr. 2012, 16:36

Bonjour,

Je suis en train de créer un formulaire d'inscription et j'aimerais que celui-ci puisse me parvenir par mail de manière structurée (quelque chose de lisible et compréhensible...).

Après plusieurs jours de recherche et plusieurs tentatives, je me tourne vers vous en espérant que vous puissiez m'apporter une solution....

Voici l'HTML:
<form method="post" action="sendemail.php" id="inscriptionForm">
  <fieldset>
      <label for="equipe">Nom de l'équipe:</label>
      <input type="text" name="equipe" id="equipe" />
      <label for="mailCapitaine">e-mail du capitaine:</label>
      <input type="text" name="mailCapitaine" id="mailCapitaine" />
  </fieldset>
     
  <fieldset>
  <legend>Choisissez une catégorie:</legend>
      <ul>
        <li><label for="folklore">Folklore: </label><input type="radio" id="folklore" name="categorie" value="folklore" /></li>
       
        <li><label for="vitesse">Vitesse: </label><input type="radio" id="vitesse" name="categorie" value="vitesse" /></li>
       
        <li><label for="mouvement">Mouvement de jeunesse: </label><input type="radio" id="mouvement" name="categorie" value="mouvement de jeunesse" /></li>
      </ul>
  </fieldset>
 
  <fieldset>
  <legend>Inscrivez les participants (6 min et 15 max):</legend>
      <ul>
        <li><input type="text" name="nom1" id="nom1" /></li>
        <li><input type="text" name="pre1" id="pre1" /></li>
        <li><input type="text" name="mail1" id="mail1" /></li>
      </ul>
      <ul>
        <li><input type="text" name="nom2" id="nom1" /></li>
        <li><input type="text" name="pre2" id="pre1" /></li>
        <li><input type="text" name="mail2" id="mail1" /></li>
      </ul>
      <ul>
        <li><input type="text" name="nom3" id="nom1" /></li>
        <li><input type="text" name="pre3" id="pre1" /></li>
        <li><input type="text" name="mail3" id="mail1" /></li>
      </ul>
  </fieldset>
 
  <input type="submit" name="submit" id="buttonsend" value="Send" />
</form>
Et voici ou j'en suis au niveau du PHP:
<?php
$mailto        = "[email protected]";
$equipe       = $_POST['equipe'];
echo 'nom de l équipe: ',$equipe;
$mailCapitaine  = $_POST['mailCapitaine'];
echo 'e-mail du capitaine: ',$mailCapitaine;   
$categorie     = $_POST['categorie'];
echo 'categorie: ',$categorie;

$part1 = array();
$part1["nom"]    = $_POST['nom1'];
$part1["prenom"] = $_POST['pre1'];
$part1["mail"]  = $_POST['mail1'];

$part2 = array();
$part2["nom"]    = $_POST['nom2'];
$part2["prenom"] = $_POST['pre2'];
$part2["mail"]  = $_POST['mail2'];

$part3 = array();
$part3["nom"]    = $_POST['nom3'];
$part3["prenom"] = $_POST['pre3'];
$part3["mail"]  = $_POST['mail3'];

   if(strlen($_POST['equipe']) < 1 ){
      echo  'email_error';
   }
   
  else if(strlen($mailCapitaine) < 1 ) {
      echo 'email_error';
   }

  else {
   $email_message="\n\n" .
      
      $equipe .
      "\n" .
      $mailCapitaine .
      "\n" .
      $categorie .
      "\n" .
      $part1 .
      "\n" .
      $part2 .
      "\n" .      
      $part3 .
      "\n" .
      "\n\n" ;

      $email_message = trim(stripslashes($email_message));
      mail($mailto, $email_message, "From: \"$vname\" <".$mailCapitaine.">\nReply-To: \"".$equipe."\" <".$mailCapitaine.">\nX-Mailer: PHP/" . phpversion() );
  }
?>
D'avance, je vous remercie pour l'aide que vous m'apporterez!

ViPHP
xTG
ViPHP | 7331 Messages

22 févr. 2012, 16:45

Pourquoi stocker dans un array et ensuite vouloir l'afficher ?
Autant afficher directement les valeurs.
D'autant plus que dans ton mail tu dois juste avoir la mention "Array" actuellement. ;)

Sinon si tu veux structurer saches qu'on peut envoyer des mails en format HTML, voir la doc de la fonction mail() qui contient des exemples.

Petit nouveau ! | 4 Messages

22 févr. 2012, 18:15

Merci pour votre réponse!

Ce que je voudrais, c'est que les gens puissent remplir le formulaire à partir du site et lorsqu'il clique sur "envoyer", je reçoive celui-ci dans ma boite mail.

Je n'ai pas trouvé d'exemple qui se rapproche assez de mon cas dans la doc de la fonction mail()...

Je ne sais plus trop vers quoi me diriger...

ViPHP
xTG
ViPHP | 7331 Messages

22 févr. 2012, 18:26

Tu le reçois actuellement l'email ou non ?

Petit nouveau ! | 4 Messages

22 févr. 2012, 18:31

Oui, je le reçois mais comme tu l'as dit, ce qu'il y a dans l'array ne s'affiche pas et l'email n'est pas très lisible (tout s'affiche sur une ligne).

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 févr. 2012, 18:56

Un tableau n'est pas fait pour être afficher ainsi. Il faut afficher les élément un par un.

Donc plutôt que de remplir le tableau en haut créer la chaîne de caractère directement afin de la mettre dans le corps de mail.

@+
Il en faut peu pour être heureux ......

ViPHP
xTG
ViPHP | 7331 Messages

22 févr. 2012, 19:50

Commences déjà par faire en sorte de recevoir le mail avec toutes les infos correctement au lieu de "Array".
Ensuite tu pourras t'attaquer à une mise en page HTML : http://fr2.php.net/manual/fr/function.mail.php (lire l'exemple 4)

Petit nouveau ! | 4 Messages

22 févr. 2012, 23:37

Merci beaucoup,

J'avais bien vu l'exemple 4 mais je ne comprends pas comment les gens vont pouvoir remplir le tableau étant donné qu'il est dans le fichier php...

ViPHP
xTG
ViPHP | 7331 Messages

23 févr. 2012, 08:07

Le PHP ne fait que générer du HTML.
Donc un fichier PHP peut générer une page HTML contenant un formulaire.
Un fichier PHP peut générer un mail de type HTML.

Il semble que tu ne comprennes pas tout de ton code, je me trompe ?
Tu es bien conscient que tu récupères les informations rentrées dans le formulaire par l'utilisateur ?
Et que ces informations tu les transmets par email (si l'on oublie la mauvaise écriture des trois array).

Bref s'il y a un tableau de mise en page à remplir ce ne sont pas les utilisateurs qui vont le faire mais ton code en récupérant leurs informations.