Php fonction mail

fredek Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
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   Statut Membre Dernière intervention   220
 
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   Statut Membre Dernière intervention  
 
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
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   220
 
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   Statut Membre Dernière intervention  
 
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
 
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