Page 1 sur 1

Formulaire PHP avec envoi par mail

Posté : 16 sept. 2011, 10:43
par wallice
Bonjour,
J'ai sur mon site un formulaire google, mais j'aimerais recevoir les résultats par mail et surtout l’intégrer mieux à ma page.
Pour cela, j'ai créé un nouveau formulaire identique mais en html et dans ma page, cela fonctionne plutôt bien. En ce qui concerne l'envoi par mail et la partie php, c'est la cata!! J'ai essayé de bidouiller avec l'exemple que j'avais (mon formulaire de contact qui fonctionne bien), mais là, rien ne fonctionne!
Est-ce qu'un gentil expert en php pourrait m'aider??
Merci d'avance.
Voici mon code html:
<form method="post" action="questionnaire2.php">
		<p id="age"><label>Quel âge avez vous?</label></br>
        <input type="radio" name="age" value="moinsde20ans" />moins de 20 ans</br>
        <input type="radio" name="age" value="de20à29ans" />de 20 à 29 ans</br>
        <input type="radio" name="age" value="de30a39ans" />de 30 à 39 ans</br>
		<input type="radio" name="age" value="40ansetplus" />40 ans et plus
      </p>
	  </br>
      <p id="ville"><label>Où habitez-vous?</label></br>
        Votre ville  <input type="text" name="ville" size="30" />
		</p>
		</br>
      <p id="agedubb"><label>Quel âge a votre dernier-né?</label></br>
        <input type="text" name="agedubb" size="30" />
		</p>
		</br>
		<p id="allaitement"><label>L'allaitez-vous encore?</label></br>
        <input type="radio" name="allaitement" value="ouiexclusivement" />Oui, exclusivement</br>
        <input type="radio" name="allaitement" value="ouiallaitementmixte" />Oui, allaitement mixte</br>
        <input type="radio" name="allaitement" value="non" />Non
		</p>
		</br>
		<p id="accouchement"><label>Où avez-vous accouché?</label></br>
        <input type="radio" name="accouchement" value="rennes" />CHU de Rennes</br>
        <input type="radio" name="accouchement" value="sagesse" />Clinique de la Sagesse</br>
        <input type="radio" name="accouchement" value="stgregoire" />Centre Hospitalier Privé St Grégoire</br>
		<input type="radio" name="accouchement" value="autre" />Autre:<input type="text" size="30"/>
		</p>
		</br>
		<p id="sortie"><label>Vous êtes sortie de la maternité...</label></br>
        <input type="radio" name="sortie" value="j1" />à J1</br>
        <input type="radio" name="sortie" value="j2" />à J2</br>
        <input type="radio" name="sortie" value="j3" />à J3</br>
		<input type="radio" name="sortie" value="j4" />à J4 ou après
		</p>
		</br>
		<p id="monteedelait"><label>Et vous avez eu votre montée de lait...</label></br>
        <input type="radio" name="monteedelait" value="maternite" />A la maternité</br>
        <input type="radio" name="monteedelait" value="j2" />A la maison
		</p>
		</br>
		<p id="infos"><label>Avez-vous eu des informations sur l'allaitement maternel?</label><br />
        <input type="checkbox" name="infos[]" value="preparation" />Pendant la préparation à la naissance<br />
        <input type="checkbox" name="infos[]" value="maternité" />Par le personnel de la maternité lors de la mise en place de l'allaitement<br />
        <input type="checkbox" name="infos[]" value="sortie" />Lors d'une réunion de sortie<br />
        <input type="checkbox" name="infos[]" value="pmivisite" />Par la puéricultrice de PMI lors d'une visite à domicile<br />
		<input type="checkbox" name="infos[]" value="pmi" />Par la PMI sur place<br />
		<input type="checkbox" name="infos[]" value="association" />Par une association d'aide à l'allaitement que vous avez contacté<br />
		<input type="checkbox" name="infos[]" value="aucune" />Aucune information<br />
		<input type="checkbox" name="infos[]" value="autre" />Autre <input type="text" size="30"/>
		</p>
		</br>
		<p id="infosuffisante"><label>Ces informations ont-elles été suffisantes pour une bonne mise en place de votre allaitement?</label></br>
        <input type="radio" name="infosuffisante" value="oui" />Oui</br>
        <input type="radio" name="infosuffisante" value="non" />Non
		</p>
		</br>
		<p id="difficultes"><label>Quelles difficultés avez-vous rencontré lors de votre allaitement depuis la naissance de votre bébé?</label><br />
        <input type="checkbox" name="difficultes[]" value="informations" />Manque d'informations<br />
        <input type="checkbox" name="difficultes[]" value="miseausein" />Difficulté à mettre bébé au sein<br />
        <input type="checkbox" name="difficultes[]" value="douleur" />Douleurs et/ou lésions du mamelon<br />
        <input type="checkbox" name="difficultes[]" value="crevasses" />Crevasses<br />
		<input type="checkbox" name="difficultes[]" value="engorgement" />Engorgement<br />
		<input type="checkbox" name="difficultes[]" value="mastite" />Lymphangite ou mastite<br />
		<input type="checkbox" name="difficultes[]" value="abces" />Abcès<br />
		<input type="checkbox" name="difficultes[]" value="insuffisance" />Insuffisance de lactation<br />
		<input type="checkbox" name="difficultes[]" value="excès" />Excès de lait<br />
		<input type="checkbox" name="difficultes[]" value="poids" />Insuffisance de prise de poids du bébé<br />
		<input type="checkbox" name="difficultes[]" value="aucune" />Aucune difficulté<br />
		<input type="checkbox" name="difficultes[]" value="autre" />Autre<input type="text" size="30"/><br />
      </p>
	  </br>
	  <p id="ressources"><label>Et quelles ressources avez-vous utilisé pour résoudre ces difficultés?</label><br />
        <input type="checkbox" name="ressources[]" value="personne" />Vous n'avez trouvé personne pour vous aider<br />
        <input type="checkbox" name="ressources[]" value="maternité" />Le personnel de la maternité<br />
        <input type="checkbox" name="ressources[]" value="pmi" />La puéricultrice de PMI<br />
        <input type="checkbox" name="ressources[]" value="association" />Une association de soutien à l'allaitement<br />
		<input type="checkbox" name="ressources[]" value="amie" />une amie<br />
		<input type="checkbox" name="ressources[]" value="sfliberale" />Une sage-femme libérale<br />
		<input type="checkbox" name="ressources[]" value="consultante" />une consultante en lactation<br />
		<input type="checkbox" name="ressources[]" value="medecin" />Un médecin généraliste<br />
		<input type="checkbox" name="ressources[]" value="autre" />Autre<input type="text" size="30"/><br />
      </p>
	  </br>
	  <p id="consultante"><label>Auriez-vous aimé pouvoir faire appel à une consultante en lactation à votre domicile?</label></br>
        <input type="radio" name="consultante" value="oui" />Oui</br>
        <input type="radio" name="consultante" value="non" />Non
		</p>
		</br>
		<p id="prix"><label>Quel montant maximum seriez-vous prête à donner pour une consultation de lactation à domicile avec suivi téléphonique?</label></br>
        <input type="text" name="prix" size="10" />
		</p>
		</br>
     <p class="comments">Que pensez-vous de ce projet de consultation de lactation à domicile?</p>
    <textarea name="comments" rows="5" cols="40"></textarea>
	</p>
	</br>
    <p id="buttons">
      <input type="submit" value="Envoyer" />
      <input type="reset" value="Recommencer" />
    </p>
    </form>
et mon code php:
<?php
    define( 'MAIL_DESTINATAIRE', /* >>>>> */'[email protected]'/* <<<<< */ );  //ajouter votre courriel  
    define( 'MAIL_FROM', '[email protected]' ); // valeur par défaut  
    define( 'MAIL_SUJET', 'objet du message' ); // valeur par défaut  
    define( 'MAIL_MESSAGE', 'votre message' ); // valeur par défaut  
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_ok = "Votre demande a bien été prise en compte.";
    $message = $msg_erreur;
    // vérification des champs
    if (empty($_POST['age']))
      $message .= "Votre âge<br/>";
	if (empty($_POST['ville']))
      $message .= "Votre ville<br/>";
    if (empty($_POST['agedubb']))
      $message .= "L'âge de votre bébé<br/>";
    if (empty($_POST['allaitement']))
      $message .= "L'allaitez-vous encore?<br/>";
    if (empty($_POST['accouchement']))
      $message .= "Où avez-vous accouché?<br/>";
	if (empty($_POST['sortie']))
      $message .= "Vous êtes sortie de la maternité...<br/>";
	if (empty($_POST['monteedelait']))
      $message .= "Et vous avez eu votre montée de lait...<br/>";
	if (empty($_POST['infos']))
      $message .= "Avez-vous eu des informations sur l'allaitement maternel?<br/>";
	if (empty($_POST['infosuffisante']))
      $message .= "Ces informations ont-elles été suffisantes pour une bonne mise en place de votre allaitement?<br/>";
	if (empty($_POST['difficultes']))
      $message .= "Quelles difficultés avez-vous rencontré lors de votre allaitement depuis la naissance de votre bébé?<br/>";
	if (empty($_POST['ressources']))
      $message .= "Et quelles ressources avez-vous utilisé pour résoudre ces difficultés?<br/>";
	if (empty($_POST['consultante']))
      $message .= "Auriez-vous aimé pouvoir faire appel à une consultante en lactation à votre domicile?<br/>";
	if (empty($_POST['prix']))
      $message .= "Quel montant maximum seriez-vous prête à donner pour une consultation de lactation à domicile avec suivi téléphonique?<br/>";
	if (empty($_POST['comments']))
      $message .= "Que pensez-vous de ce projet de consultation de lactation à domicile?<br/>";
     
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
      echo $message;
     
    // sinon c'est ok
    } else {
     
      foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}
//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// préparation du corps du mail
$mail_corps = "$age, $ville, $agedubb\n";
$mail_corps .= "$allaitement, $accouchement, $sortie\n";
$mail_corps .= "$monteedelait, $infos, $infosuffisante\n";
$mail_corps .= "$difficultes, $ressources, $consultante\n";
$mail_corps .= "$prix\n";
$mail_corps .= $comments;
    
 if ($mail_corps,$mail_entete)) {
        echo $msg_ok;
      } else {
        echo mysql_error();
      }
     
    }
    ?>

Re: Formulaire PHP avec envoi par mail

Posté : 16 sept. 2011, 11:03
par Mazarini
Je ne comprends pas le dernier "if".
A priori il faudrait faire quelque chose du genre :
if (mail(...) {
   echo 'mail bien envoyé';
}
else {
   echo 'mail non envoyé';
}

Pour la fonction mail cf http://php.net/manual/fr/function.mail.php

Il faudrait surtout nous indiquer quel problème tu as exactement. Message d'erreur ? Mail non envoyé ? Mail vide ?

Re: Formulaire PHP avec envoi par mail

Posté : 16 sept. 2011, 11:10
par moogli
salut,


en fait tu n'a pas du tout compris ce que tu a fait et mis bout a bout des morceaux de code ?

il faut commencer par la validation du formulaire html, pour cela http://www.phpdebutant.org/article56.php

une fois que tu a compris ce principe et que tu l'a mis en œuvre sur ton formulaire il ne "reste" plus qu'a utiliser la fonction mail ;)

nettoie ton code et pose nous les questions que tu souhaite en cas de problème ou d'incompréhension de la chose ;)

@+

Re: Formulaire PHP avec envoi par mail

Posté : 19 sept. 2011, 00:31
par wallice
Merci j'ai réussi!!