Bonjour à toutes et tous,
J'ai un problème avec un formulaire que j'essaie d'envoyer par email, avec les données des champs que je place dans des variables de session mais qui se vident mystérieusement à la fin!
Voici mon code, composé d'une page (index.php) contenant un formulaire, d'une page (coordonnees.php) contenant les coordonnées de l'internaute et enfin, d'une page (envoi.php) qui sert a envoyer le mail:
index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <? session_start; ?> ... un ensemble de listes déroulantes, les variables étant sous la forme variable1_1_1, variable1_1_2, variable1_1_3, variable1_1_4, puis de nouveau variable1_2_1, variable1_2_2, ... jusqu'à variable1_15_4 : <FORM method="POST" action="coordonnees.php"> <select name="variable1_1_1" id="variable1_1_1"> <option value="rien;" selected>rien;</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> </select> <INPUT type="submit" value="valider"> </FORM> ...
coordonnees.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <? on attribue aux variables de session les valeurs du formulaires de la page précédente: for($i=1;$i<=15;$i++){ for($j=1;$j<=4;$j++){ if (empty($_SESSION["variable1_".$i."_".$j])) { $_SESSION["variable1_".$i."_".$j]=${variable1_.$i._.$j}; test d'affichage des variables de session pour voir si elles sont bien remplies (le test est OK !): echo $_SESSION["variable1_".$i."_".$j]."\n"; } } } ?> <FORM method="POST" action="envoi.php"> <P align="center">Votre nom et prénom:<br> <INPUT type="text" name="nom" size=30> </p> <P align="center">Votre adresse E-Mail:<br> <INPUT type="text" name="email" size=30> </p> <P align="center">Votre adresse postale:<br> <textarea name="adresse" cols=30 rows=5></textarea> <P align="center"> <INPUT type="submit" value="Envoyer"> </FORM>
envoi.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <? for($i=1;$i<=15;$i++){ for($j=1;$j<=4;$j++){ test pour voir si les variables de sessions sont toujours remplies mais elles ne le sont plus à cet instant ! echo $_SESSION["variable1_".$i."_".$j]; } } $msg = "Nom:\t$nom\n"; $msg .= "E-Mail:\t$email\n"; $msg .= "Adresse:\t$adresse\n\n"; for($i=1;$i<=15;$i++){ for($j=1;$j<=4;$j++){ $msg .=$_SESSION["variable1_".$i."_".$j]; $msg .=" - "; } $msg .="\n"; } $recipient = "monmail@site.com"; $subject = "Formulaire"; $mailheaders = "From: Mon test de formulaire<> \n"; $mailheaders .= "Reply-To: $email\n\n"; mail($recipient, $subject, $msg, $mailheaders); echo "<HTML><HEAD>"; echo "<TITLE>Formulaire envoyé!</TITLE></HEAD><BODY>"; echo "<H1 align=center>Merci, $nom </H1>"; echo "<P align=center>"; echo "Votre formulaire à bien été envoyé !</P>"; echo "</BODY></HTML>"; ?>
Voila mon code, et je ne comprends pas pourquoi mes variables $_SESSION["variable1_".$i."_".$j] sont remplies et s'affichent en haut de ma page coordonnees.php mais sont vides en arrivant dans envoi.php ?
SI vous avez de quelconques informations, cela m'aiderait enormement!
merci
Partager