Php fonction mail

Fermé
fredek Messages postés 43 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 29 avril 2015 - 7 mai 2012 à 16:17
 Utilisateur anonyme - 1 juin 2012 à 13:35
Bonjour,

Je viens vous embêter car je rencontre un petit problème avec un formulaire, mis en ligne et qui ne fonctionne pas bien.

En effet, je reçois l'intitulé de la question mais pas le corps de la réponse. J'ai essayé de modifier en mettant en place une écriture comme ça

php

$message .= "\n Nom de la société : ";
	 $message .= ($_POST ['nom_entreprise']); 



Mais ça marche pas non plus.

Je vous livre le HTML et le PHP et vous remercie par avance de toute l'aide que vous pourrez m'apporter.

code html

    <body>
  
<table>
<tr>
<td>  
 <fieldset>
       <legend>Historique</legend> 
<p></p>
<form method="post" action="traitement.php" name="formulaire">

<p>Veuillez compléter les questions ci-dessous </p>

<table>    <label for="nom">Etes-vous ou avez-vous été dans une de ces situations>/label>

<TR>
	<TD>Sans assurance depuis plus de 1 an?</TD>
	<TD>
	oui <INPUT type=radio name="sans_assurance" value="o">
	non <INPUT type=radio name="sans_assurance" value="n">
	</TD>
</TR>
<TR>
	<TD>Redressement judiciaire?</TD>
	<TD>
	oui <INPUT type=radio name="redressement" value="o">
	non <INPUT type=radio name="redressement" value="n">
	</TD>
</TR>
<br />
<TR>
	<TD>Résilié pour sinistre?</TD>
	<TD>
	oui <INPUT type=radio name="resilie_sinistre" value="o" id="o">
	non <INPUT type=radio name="resilie_sinistre" value="n">
	</TD>
</TR>
<br />
<TR>
	<TD>Résilié pour non paiement?</TD>
	<TD>
	oui <INPUT type=radio name="resilie_paiement" value="o">
	non <INPUT type=radio name="resilie_paiement" value="n">
	</TD>
</TR>
</table>

<p>Le souscripteur est-il ou a-t-il été assuré?</p>
<label for="Le souscripteur est-il ou a-t-il été assuré">oui</label><input type="radio" name="souscripteur_assure" value="oui" id="oui" />
<label for="Le souscripteur est-il ou a-t-il été assuré">non</label><input type="radio" name="souscripteur_assure" value="non" id="non" />

<p>Le risque a-t-il fait l'objet d'une résiliation?</p>
<label for="Le risque a-t-il fait l'objet d'une résiliation">oui</label><input type="radio" name="risque-resilie" value="oui" id="oui" />
<label for="Le risque a-t-il fait l'objet d'une résiliation">non</label><input type="radio" name="risque-resilie" value="non" id="non" />

<p>Avez-vous été mis en cause ces dernières années au titre des garanties similaires à celle de cette proposition?</p>
<label for="Avez-vous été mis en cause ">oui</label><input type="radio" name="mis_en_cause " value="oui" id="oui" />
<label for="Avez-vous été mis en cause ">non</label><input type="radio" name="mis_en_cause " value="non" id="non" />

</fieldset>

<p></p>
<input type="image" alt="Envoyer" height="45" src="http://www.blabla.com/valider.jpg" />
</td>
</tr>
</table>
</body>
</html>




En PHP j'ai mis ça:


PHP
<?php


$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-Type: text/plain; charset = \"UTF-8\";\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "\n";

   
$headers .= "To: moi@gmail.com";
$headers .= "From: $email" . "\r\n";

$to      = "moi@gmail.com";
$subject = "Devis";

$message = "<html><head><title>Devis</title></head>";
$message .= "<body>";
$message="Une demande de devis est arrivée"; 
$message = "\n Existence d'une absence d'expérience :$sans_experience ";
$message = "\n Existence d'un redressement judiciaire :$redressement ";
$message = "\n Existence d'une résiliation pour sinistre :$resilie_sinistre ";
$message = "\n Existence d'une résiliation pour non paiement : $resilie_paiement ";
$message = "\n Existence d'un antécédent d'assurance pour le souscripteur :$souscripteur_assure ";
$message = "\n Existence d'une précédente résiliation du risque :$risque_resilie ";
$message = "\n Existence d'une mise en cause lors des 5 dernières années :$mis_en_cause ";

$headers="From: $nom \n Reply-to: $email";
mail($to, $subject, $message, $headers) ;
echo Header("Location: http://www.blabla.com/merci.php");

?>	


A voir également:

7 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
7 mai 2012 à 16:50
Salut,

Il faut concaténer toutes les variables $message avant l'envoie dans la fonction mail().
Tout les $message = deviennent $message .= (avec un point devant le égal).
0
fredek Messages postés 43 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 29 avril 2015
21 mai 2012 à 16:07
bonjour et merci pour la réponse.

j'ai suivi les conseils mais reçoit mes mails avec les entêtes des questions mais sans la réponse ce qui est dommage ...

dès que j'ai la réponse, je reviendrai la déposer à toute fin utile.
0
Utilisateur anonyme
21 mai 2012 à 16:23
Bonjour

Tes variables $sans_experience, etc... n'existent pas.
Il faut utiliser $_POST['sans_experience'],etc... pour récupérer les champs du formulaire.

Et ton mail doit être bizarre : tu précises Content-Type: text/plain; et tu envoies du html ???
0
fredek Messages postés 43 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 29 avril 2015
31 mai 2012 à 16:39
Merci pour la réponse. Effectivement, j'avais commencé à faire en sorte d'avoir une réponse en html mais en text, ça suffisait.

J'ai apporté les corrections
0
fredek Messages postés 43 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 29 avril 2015
31 mai 2012 à 16:42
Merci d'avoir répondu si vite.

j'ai bien repris mon formulaire en suivant vos conseils.

Le bémol est que je ne récupère que les informations saisies sur la dernière page du formulaire. Les autres ne suivent pas.

Y a t il un moyen avec

<input type="hidden" name="blabla" value="<?php echo ($_POST['blabla']) ;?>">


ou dois je passer par des sessions?

En tel cas, comment fait on pour collecter toutes les informations saisies une fois arrivé au terme du du formulaire?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
1 juin 2012 à 09:02
Il y a combien de page?
Sinon, oui, il faut utiliser les sessions pour stoker les données saisies par l'utilisateur si c'est sur plusieurs pages.
0
fredek Messages postés 43 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 29 avril 2015
1 juin 2012 à 11:36
5 pages de formulaire et une page de traitement

pour le traitement, j'ai fait

$message .= "\n Nom : ";
$message .= ($_POST ['nom']); 


mais avec une session, je ne sais pas comment l'écrire.
0
Utilisateur anonyme
1 juin 2012 à 13:35
Le nombre de pages n'est pas vraiment critique. En théorie, tu peux aussi bien utiliser des champs hidden qu'une session, en pratique le champ hidden devient lourd à gérer si tu as plus de 2 pages.

Pour utiliser les sessions, il faut :
- Mettre l'instruction session_start(); au début de chacune de tes pages. Quand je dis au début, c'est avant l'envoi de texte à la fenêtre, c'est à dire avant le 1er echo ou print et avant tout ce qui est en dehors des balises <?php ?>. En particulier, il ne doit pas y avoir le moindre caractère espace ou ligne vide avant la balise <?php du début de ton script.
- Enregistrer les variables que tu veux retrouver dans le tableau superglobal $_SESSION, par exemple $_SESSION['nom']=$_POST['nom']; $_SESSION['age']=2012-$naissance; ...
- utiliser les variables $_SESSION['nom'], $_SESSION['age']... que tu as créées dans une autre (ou la même...) page

Petite remarque : j'ai pris le même mot 'nom' pour la variable de session et celle du formulaire dans $_SESSION['nom']=$_POST['nom'];. C'est ce qu'on fait en général parce que c'est plus pratique, mais j'aurais aussi bien pu faire $_SESSION['x243y']=$_POST['nom'];. J'aurais retrouvé le nom dans une autre page dans $_SESSION['x243y'].
0