Récupérer valeurs formulaire et les envoyer sur un mail

mtthjntt
Invité n'ayant pas de compte PHPfrance

06 févr. 2013, 16:33

Bonjour à tous,

Je suis en train de travailler sur un formulaire de contact pour une invitation. J'ai plusieurs valeurs à récupérer dont des champs de saisies et des boutons radio. Je dois pouvoir les récupérer et les envoyer sur une adresse mail. Je vous joins mon code mais je n'arrive pas à concaténer correctement pour ma variable $reponse. Et peut être qu'il y a d'autres erreurs sur mon script.. Vous pouvez également voir directement ce que je cherche à faire sur une page test hébergée sur mon site : http://matthieujeunet.com/barmitzvah/test.php

Merci d'avance pour vos réponses !
<?php

if ($texte!="")
{
$entete="X-Priority:1\n";

$reponse= "Linvité : " . $nom . $prenom . "sera présent le : " '."\n".' . "- 8 avril 2013 " echo $huit_avril . "et il y aura " echo $nbr_adultes_huit_avril . "et " . echo $nbr_enfants_huit_avril '."\n".' . "- 13 avril 2013 " echo $treize_avril . "et il y aura " echo $nbr_adultes_treize_avril . "et " echo $nbr_enfants_treize_avril '."\n".' . "- 05 mai 2013 " echo $cinq_mai . "et il y aura " echo $nbr_adultes_cinq_mai . "et " echo $nbr_enfants_cinq_mai ;

mail("[email protected]","Un nouvel invité a répondu à l'invitation pour l'invitation de Samuel !",$reponse,$entete);

$info = "Merci! Votre message a bien été envoyé.";

}

?>


<html>
<body>
<form name="form" action="<?$PHP_SELF;?>" method="post">
	Nom, prenom : <input type="text" name="nom"> <input type="text" name="prenom"><br /><br />
	
	Je serai present le : <br /><br />
	
	Le 8 avril 2013 <input type="radio" name="huit_avril" value="oui"> oui <input type="radio" name="huit_avril" value="non"> non <br />  <i> Si oui : nombre d'adultes <input type="text" name="nbr_adultes_huit_avril" style="width:25px;margin-right:25px;"> nombre d'enfants (- de 12 ans) <input type="text" name:"nbr_enfants_huit_avril" style="width:25px;"></i><br /><br />
	
	Le 13 avril 2013 <input type="radio" name="treize_avril" value="oui"> oui <input type="radio" name="treize_avril" value="non"> non <br />  Si oui : nombre d'adultes <input type="text" name="nbr_adultes_treize_avril" style="width:25px;margin-right:25px;"> nombre d'enfants (- de 12 ans) <input type="text" name:"nbr_enfants_treize_avril" style="width:25px;"><br /><br />
	
	Le 05 mai 2013 <input type="radio" name="cinq_mai" value="oui"> oui <input type="radio" name="cinq_mai" value="non"> non <br />  Si oui : nombre d'adultes <input type="text" name="nbr_adultes_cinq_mai" style="width:25px;margin-right:25px;"> nombre d'enfants (- de 12 ans) <input type="text" name:"nbr_enfants_cinq_mai" style="width:25px;"><br /><br />
	

	<input type="submit" value="valider"><?php echo $info;?>
</form>
</body>
</html>

ViPHP
xTG
ViPHP | 7331 Messages

06 févr. 2013, 17:39

Enlèves les echo.
C'est une fonction-macro faite pour afficher du texte.
Or tu ne veux pas l'afficher mais concaténer.

mtthjntt
Invité n'ayant pas de compte PHPfrance

06 févr. 2013, 18:01

Tout d'abord merci de ta réponse. Je viens d'essayer d'enlever les echo, ça ne marche toujours, ma page devient toute blanche comme s'il n'y avait plus de contenu. Deuxième question : j'aimerais que lorsque l'utilisateur choisit "non" pour une date alors j'afficherai 0 pour le nombre d'adultes et 0 pour le nombre d'enfants. Du coup, je dois surement passer par une boucle if, et la c'est aussi de mes capacités ! I need help please ! :priere:

Eléphanteau du PHP | 12 Messages

06 févr. 2013, 22:52

Franchement tu pourrais lire un peu mieu les docs/tutos php...

Code bourré d'erreur...

Corrigé :
<?php
// Tester un truc qui existe !
if ( isset($_POST['action']) && $_POST['action'] == 'envoi' ) {
	// Recuperer les données !!
	$nom = $_POST['nom'];
	$prenom = $_POST['prenom'];
	$huit_avril = $_POST['huit_avril'];
	$nbr_adultes_huit_avril = $_POST['nbr_adultes_huit_avril'];
	$nbr_enfants_huit_avril = $_POST['nbr_enfants_huit_avril'];
	$treize_avril = $_POST['treize_avril'];
	$nbr_adultes_treize_avril = $_POST['nbr_adultes_treize_avril'];
	$nbr_enfants_treize_avril = $_POST['nbr_enfants_treize_avril'];
	$cinq_mai = $_POST['cinq_mai'];
	$nbr_adultes_cinq_mai = $_POST['nbr_adultes_cinq_mai'];
	$nbr_enfants_cinq_mai = $_POST['nbr_enfants_cinq_mai'];

	$entete="X-Priority:1\n";
	
	// A utiliser pour rendre code plus lisible
	ob_start();
?>
Linvité : <?=$nom.' '.$prenom?> sera présent le : <br/>
<br/>
- 8 avril 2013 <?=$huit_avril?> et il y aura <?=$nbr_adultes_huit_avril?> et <?=$nbr_enfants_huit_avril?><br/>
<br/>
- 13 avril 2013 <?=$treize_avril?> et il y aura <?=$nbr_adultes_treize_avril?> et <?=$nbr_enfants_treize_avril?><br/>
<br/>
- 05 mai 2013 <?=$cinq_mai?> et il y aura <?=$nbr_adultes_cinq_mai?> et <?=$nbr_enfants_cinq_mai?>
<?php
	$reponse = ob_get_clean();

	mail("[email protected]","Un nouvel invité a répondu à l'invitation pour l'invitation de Samuel !",$reponse,$entete);

	$info = "Merci! Votre message a bien été envoyé.";
}
?>


<html>
	<body>
		<?=$info?>
		<form name="form" action="<?$PHP_SELF;?>" method="post">
			Nom, prenom : <input type="text" name="nom"> <input type="text" name="prenom"><br /><br />

			Je serai present le : <br /><br />

			Le 8 avril 2013 <input type="radio" name="huit_avril" value="oui"> oui <input type="radio" name="huit_avril" value="non"> non <br />
			<i> Si oui : nombre d'adultes <input type="text" name="nbr_adultes_huit_avril" style="width:25px;margin-right:25px;"> nombre d'enfants (- de 12 ans) <input type="text" name:"nbr_enfants_huit_avril" style="width:25px;"></i><br />
			<br />
			Le 13 avril 2013 <input type="radio" name="treize_avril" value="oui"> oui <input type="radio" name="treize_avril" value="non"> non <br />
			Si oui : nombre d'adultes <input type="text" name="nbr_adultes_treize_avril" style="width:25px;margin-right:25px;"> nombre d'enfants (- de 12 ans) <input type="text" name:"nbr_enfants_treize_avril" style="width:25px;"><br />
			<br />
			Le 05 mai 2013 <input type="radio" name="cinq_mai" value="oui"> oui <input type="radio" name="cinq_mai" value="non"> non <br />
			Si oui : nombre d'adultes <input type="text" name="nbr_adultes_cinq_mai" style="width:25px;margin-right:25px;"> nombre d'enfants (- de 12 ans) <input type="text" name:"nbr_enfants_cinq_mai" style="width:25px;"><br />
			<br />
			<!-- utiliser pour tester si on doit recup des données -->
			<input type="hidden" name="action" value="envoi" />
			<input type="submit" value="valider">
		</form>
	</body>
</html>

mtthjntt
Invité n'ayant pas de compte PHPfrance

07 févr. 2013, 01:32

Alors tout d'abord milllle merci pour ta réponse ! :D Effectivement, j'avais tout faux sur toute la ligne ! Pour ma défense, je me mets à peine sur le PHP et je dois finir cette invitation pour samedi donc forcément c'est pas évident de tout assimiler d'un coup ! Alors pour le code c'est super ça marche très bien, je reçois parfaitement le mail par contre, mais il y a un tout petit bugg : ça ne récupère pas la valeur pour la saisie du nombre d'enfants et je ne vois pas trop pourquoi.. Et lorsque j'inscrit la valeur 0, cela ne s'affiche pas non plus (il y a des invités qui viendront surement sans enfants).. Aurais-tu une idée? Et dernière petite chose, les <br /> apparaissent dans le mail, y-a-t-il un moyen de ne pas les voir?

Merci d'avance pour ta réponse !

mtthjntt
Invité n'ayant pas de compte PHPfrance

07 févr. 2013, 01:36

Le mot qui manque à la fin c'est "et dernière petite chose, les br apparaissent dans le mail"

mtthjntt
Invité n'ayant pas de compte PHPfrance

07 févr. 2013, 01:46

Oups autant pour moi je viens de trouver, il y avait une toute petite erreur de syntaxe --> name:"nbr_enfants_cinq_mai" au lieu de name="nbr_enfants_cinq_mai" Par contre pour les br qui s'affichent dans le corps du mail je veux bien que quelqu'un me dise s'il sait pourquoi.. Désolé pour le nombre de message, oui je suis assez stressé par rapport à ce rendu ! :D