18 Novembre 2017 à 05:40:48

Auteur Sujet: probleme de formulaire/renvoi par mail  (Lu 3083 fois)

kevinb36

  • Nouveau membre
  • *
  • Messages: 4
  • Points gagnés: 0
    • Voir le profil
probleme de formulaire/renvoi par mail
« le: 29 Décembre 2012 à 15:33:28 »
Bonjour,

J'ai crée un formulaire en html que voici :

<html><body>
<form method=POST action=formmail.php >
<p>Commande de serveur</p><br>
<p>0.90€/ slot pour un serveur War (configuration comprise),1.10€/ slot pour tout autre serveur</p>
 <style type="text/css">
   body {
  background-image: url(http://www.millenium.org/images/contenu/actus/cs/cs_logocs.jpg);
  background-repeat: no-repeat;
  color: #FFF;
  background-color: #000;
  background-position: center;
  }
  </style>
<br>
Nom : <input type="text" name="nom" size="12"><br>
Prénom : <input type="text" name="prenom" size="12"><br>
SteamID : <input type="text" name="SteamID" size="12"><br>
Votre email : <input type="text" name="email" size="20"><br>
<TD>Version de Counter Strike</TD>
<TD>
<SELECT name="Version">
<OPTION VALUE="1.6">1.6</OPTION>
<OPTION VALUE="Condition Zero">Condition Zero</OPTION>
<OPTION VALUE="Source">Source</OPTION>
<OPTION VALUE="Global Offensive">Global Offensive</OPTION>
</SELECT><br>
<TD>Type de serveur</TD>
<TD>
<SELECT name="Type de serveur">
<OPTION VALUE="Privé">Privé</OPTION>
<OPTION VALUE="Public">Public</OPTION>
</SELECT><br>
Nombre de slots souhaité : <input type="text" name="Nombre de slots" size="4"><br>
Mirroir Perso(+2€)<INPUT type="checkbox" name="Mirroir Perso" value="Mirroir perso"><br>
Temps de location (En  mois) : <input type="text" name="Temps de location" size="4"><br>
<input type=submit value=Envoyer> -
     <input type=reset value=Annuler>
<p></p>Mise en ligne de votre serveur dans les 24 heures qui suivent la commande<br>
<p></p>Pour les serveurs CS:GO, uniquement le type "WAR" de disponible<br>
</form></body></html>

D'autre part, un php qui est censé m'envoyer un email que voila :

<?php 
     
//----------------------------------------------- 
     //DECLARE LES VARIABLES 
     //----------------------------------------------- 

     
$destinataire='JAI MIS MON EMAIL ICI';
     
$email_expediteur='votre_mail@fai.fr'
     
$email_reply='email_de_reponse@fai.fr';

     
$message_texte='Bonjour,'."\n\n".'Voici un message au format texte'
     
$message_html='<html> 
     <head> 
     <title>Titre</title> 
     </head> 
     <body>Test de message</body> 
     </html>'


     
//----------------------------------------------- 
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML 
     //----------------------------------------------- 

     
$frontiere '-----=' md5(uniqid(mt_rand())); 

     
//----------------------------------------------- 
     //HEADERS DU MAIL 
     //----------------------------------------------- 

     
$headers 'From: "Nom" <'.$email_expediteur.'>'."\n"
     
$headers .= 'Return-Path: <'.$email_reply.'>'."\n"
     
$headers .= 'MIME-Version: 1.0'."\n"
     
$headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'

     
//----------------------------------------------- 
     //MESSAGE TEXTE 
     //----------------------------------------------- 
     
$message 'This is a multi-part message in MIME format.'."\n\n"

     
$message .= '--'.$frontiere."\n"
     
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n"
     
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n"
     
$message .= $message_texte."\n\n"

     
//----------------------------------------------- 
     //MESSAGE HTML 
     //----------------------------------------------- 
     
$message .= '--'.$frontiere."\n";
     
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n"
     
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n"
     
$message .= $message_html."\n\n"

     
$message .= '--'.$frontiere."\n"

     if(
mail($destinataire,$sujet,$message,$headers)) 
     { 
          echo 
'Le mail a été envoyé'
     } 
     else 
     { 
          echo 
'Le mail n\'a pu être envoyé'
     } 
?>

Les problèmes sont les suivant :

- Afin de voir le message " votre email a bien été envoyer", la personne est obliger de cliquer 2 fois sur le formulaire au lieu d'une seul.
- Je recois bien le mail au deuxième click mais sa me met "test de message" au lieu de me donner les variable du formulaire rempli par la personne
- l'adresse de la personne qui a rempli et envoyer le formulaire n'est pas mentionner lorsque je recois l'email.

Cela fait des jours que je me casse la tête dessus, etant novice en html/php et j'aurais besoin d'un petit coup de pouce de votre part.

Cordialement,
Kévin.

kevinb36

  • Nouveau membre
  • *
  • Messages: 4
  • Points gagnés: 0
    • Voir le profil
Re : probleme de formulaire/renvoi par mail
« Réponse #1 le: 01 Janvier 2013 à 17:35:20 »
Personne ne peut m'apporter l'aide dont j'ai besoin? :(

mathias

  • Rédacteur Modérateur
  • Intarissable
  • *****
  • Messages: 1287
  • Points gagnés: 4
    • Voir le profil
    • KERII : Création de solutions informatiques
Re : probleme de formulaire/renvoi par mail
« Réponse #2 le: 02 Janvier 2013 à 08:31:26 »
Bonjour;

Vacances oblige :)

Sinon pour votre problème, c'est normal que vous receviez ce message. car dans votre variable $message_html vous avez rentré "texte de votre message" en dur dans le code. Il ne peut pas renvoyer autre chose.

A cette endroit vous devez placer les variables de votre formulaire en mettant par exemple :

$_POST['nom']

Ce qui donnerais quelque chose comme ceci.

$message_html='<html>
     <head>
     <title>Titre</title>
     </head>
     <body>Nom : '.$_POST['nom'].'<br />
                 Prénom:'.$_POST['prenom'].' <br />
                 Steam ID:'.$_POST['SteamID'].' <br />
                 ....</body>
     </html>';

Tout de suite ça devrait fonctionner beaucoup mieux. Enfin, j'espère :)
Administrateur système et réseau | Ingénieur R&D | Webmaster

Président | fondateur de KERII : Création de solutions informatiques

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : probleme de formulaire/renvoi par mail
« Réponse #3 le: 02 Janvier 2013 à 11:03:26 »
Bonjour Kévin,

Comme le dit Mathias, votre corps de message et votre adresse email expéditeur + reply sont écrits en dur dans le code, donc vous les recevrez tel quel.

Le principe de base d'un formulaire php est le suivant :
  • Dans le code html du formulaire, il faut une action qui appelle un code php. C'est ce que vous avez fait avec : <form method=POST action=formmail.php >
  • Toutes les valeurs de votre formulaire sont envoyées à formmail.php, et vous pouvez les récupérer dans le tableau $_POST pour en faire ce que vous voulez.

Le problème c'est que vous ne récupérez jamais ces valeurs $_POST['nom'], $_POST['prenom'], etc.
[/list].
Pour compléter ce que dit Mathias et vous donner un autre exemple : pour avoir l'adresse de l'expéditeur, il faudrait donc remplacer :

$email_expediteur='votre_mail@fai.fr'; Par :
$email_expediteur= $_POST['email'];
Bon courage.
Cordialement,
Damien

Tutoriels informatique

kevinb36

  • Nouveau membre
  • *
  • Messages: 4
  • Points gagnés: 0
    • Voir le profil
Re : probleme de formulaire/renvoi par mail
« Réponse #4 le: 02 Janvier 2013 à 20:22:32 »
Bonsoir,

En effet des vacances en cette fin d'année sont les bienvenus, je vais essayer d'appliquer vos recommandations :)
En vous souhaitant une bonne année,
Kévin.

Bon, j'ai tout suivi à la lettre, le prénom, le nom, l'email et le steam id, je reçois niquel par email , mais pour le reste sa laisse un blanc...

Voici ce que j'ai fais :

 <body>
                Nom : '.$_POST['nom'].'<br />
                 Prénom:'.$_POST['prenom'].' <br />
                 Steam ID:'.$_POST['SteamID'].' <br />
             Votre email:'.$_POST['email'].' <br />
             Version de Counter Strike:'.$_POST['Version'].' <br />
             Type de serveur:'.$_POST['Type de serveur'].' <br />
             Nombre de slots souhaité:'.$_POST['Nombre de slots'].' <br />
             Mirroir Perso(+2€):'.$_POST['Mirroir Perso'].' <br />
             Temps de location (En  mois):'.$_POST['Temps de location'].' <br />
    </body>
« Modifié: 02 Janvier 2013 à 20:52:35 par kevinb36 »

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : probleme de formulaire/renvoi par mail
« Réponse #5 le: 03 Janvier 2013 à 00:13:12 »
Bonsoir,

Ceux que vous ne recevez pas, ce sont les noms de champ qui contiennent des espaces.
Mettez systématiquement des tirets - ou tirets bas _ à la place des espaces dans les noms de champs, et évitez les majuscules aussi pour ce genre de chose (en général dans les name, ids, classes...).
Cordialement,
Damien

Tutoriels informatique

kevinb36

  • Nouveau membre
  • *
  • Messages: 4
  • Points gagnés: 0
    • Voir le profil
Re : probleme de formulaire/renvoi par mail
« Réponse #6 le: 03 Janvier 2013 à 15:34:21 »
Milles merci !