Php fonction mail
fredek
Messages postés
43
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
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
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.
En PHP j'ai mis ça:
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:
- Php fonction mail
- Fonction si et - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Créer une adresse mail hotmail - Guide
- Comment télécharger un mail - Guide
7 réponses
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).
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).
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.
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.
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 ???
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 ???
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
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?
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?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
Sinon, oui, il faut utiliser les sessions pour stoker les données saisies par l'utilisateur si c'est sur plusieurs pages.
5 pages de formulaire et une page de traitement
pour le traitement, j'ai fait
mais avec une session, je ne sais pas comment l'écrire.
pour le traitement, j'ai fait
$message .= "\n Nom : "; $message .= ($_POST ['nom']);
mais avec une session, je ne sais pas comment l'écrire.
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'].
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'].