Bonjour à tous et à toutes.
J'ai un problème et je vous le présente en espérant que vous pourriez m'aider.
J'ai plusieurs pages php :
-un formulaire pour pouvoir se connecter (loginBlog.php)
-un test pour se connecter (exploitationLogin.php)
-un affichage des séjours en fonction du login (choixSejour.php)
-une déconnection (deconnection.php)
Après validation du formulaire loginBlog.php, une variable $_session['login'] est créée.
Mon problème est le suivant : Ma variable de session est perdue lors d'un changement de page, excepté sur exploitationLogin.php (où elle est créée) et sur choixSejour (ou une requête l'utilise).
J'ai des session_start au début de chacune de mes pages et j'ai testé l'affichage de $_session['login'] sur les différentes pages.
Je n'arrive pas à comprendre pourquoi ma variable de session est apparemment détruire sur les autres pages.
Ps: j'utilise easyphp, sur Chrome.
Ci-dessous mon code.
Le formulaire (loginBlog.php)
L'exploitation du formulaire (exploitationLogin.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Association Services Loisirs Vacances - Tourisme Adapte</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <link href="../styles/style.css" rel="stylesheet" type="text/css" media="screen" /> <link rel="shortcut icon" type="image/x-icon" href="http://www.picdo.net/fichiers/2010/4/8/96cc22fe-9c05-4c78-bee6-e683a6d07c6b_favicon.ico" /> <script language="javascript"> function verif(form) { if (form.login.value == '') alert('Saisissez votre login'); else if (form.mdp.value == '') alert('Saisissez votre mot de passe'); else form.submit(); } </script> </head> <body> <div id="body1"> <!-- Bannière de haut de page --> <div id="header"> </div> <div id="body2"> <div id="date"> <p> Nous sommes le 06 janvier 2015 </p> </div> <!-- La zone principale de texte et d'affichage des articles --> <div id="zone_centrale"> <div id="centre_h_a"> <img src="../images/centre_h_a.png" alt="Centre_h" /> </div> <div id="centre_m_a"> <div id="zone_txt"> <div class="zone_login"> <p> <font size='4'><b>Connexion au blog</b></font> </p> <!--formulaire--> <form method="post" action="exploitationLogin.php"> Login: <input type="text" name="login" class="box" style="margin-left: 50px;" placeholder='login'><br/> Mot de passe: <input type="password" name="mdp" class="box" placeholder='mot de passe'><br /><br /> <input type="button" value = "Valider" onClick = "verif(this.form)" class="box"> </br></br><a href="../index.php">Retour</a><br> </form> </div> </div> </div> <div id="centre_b_a"> <img src="../images/centre_b_a.png" alt="Centre_b" /> </div> </div> </div> </div> <!-- Pied de page --> <div id="footer"><div id="img_footer"><img src="../images/txt_aslv.png" alt="Association Service Loisirs Vacances - 6 rue des Clairons - 54210 Saint Nicolas de Port" /></div></div> </body> </html>
La page d'affichage des séjours en fonction du login (choixSejours.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Association Services Loisirs Vacances - Tourisme Adapte</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <link href="../styles/style.css" rel="stylesheet" type="text/css" media="screen" /> <link rel="shortcut icon" type="image/x-icon" href="http://www.picdo.net/fichiers/2010/4/8/96cc22fe-9c05-4c78-bee6-e683a6d07c6b_favicon.ico" /> <head> <body> <!-- Fonction PHP session et date --> <!-- Fin de la fonction --> <div id="body1"> <!-- Bannière de haut de page --> <div id="header"> </div> <div id="body2"> <div id="date"> <p> Nous sommes le 06 janvier 2015 </p> </div> <!-- La zone principale de texte et d'affichage des articles --> <div id="zone_centrale"> <div id="centre_h_a"> <img src="../images/centre_h_a.png" alt="Centre_h" /> </div> <div id="centre_m_a"> <div id="zone_txt"> <center> <?php //connexion au serveur $db = mysql_connect('localhost', 'root', ''); //choix de la base mysql_select_db('carnetdevoyage', $db); //requête $reqLogMdp = "SELECT IdeLogin, IdeMdp FROM identifiant WHERE IdeLogin = '".$_POST['login']."' AND IdeMdp = '".$_POST['mdp']."'"; $resultreq = Mysql_query($reqLogMdp); //si il y a un résultat on connecte if($row = Mysql_Fetch_row($resultreq)){ //sauvegarde du login dans une variable de session $_SESSION['login'] = $row[0]; echo ("Bienvenue <b>".$_SESSION['login']."</b><br>"); echo ("Vous allez être redirigé automatiquement.<br>"); header("refresh: 3; URL=choixSejour.php"); echo ("<a href='choixSejour.php'>Cliquez ici si vous n''êtes pas redirigé automatiquement</a>"); } //sinon on le renvoie au formulaire else { echo ("Identifiant ou mot de passe <b>incorrect</b></br>"); //echo ("Vous allez être redirigé automatiquement.<br>"); header("refresh: 3; URL=loginBlog.php"); echo ("<a href='loginBlog.php'>Cliquez ici si vous n''êtes pas redirigé automatiquement</a>"); } ?> </center> </div> </div> <div id="centre_b_a"> <img src="../images/centre_b_a.png" alt="Centre_b" /> </div> </div> </div> </div> <!-- Pied de page --> <div id="footer"><div id="img_footer"><img src="../images/txt_aslv.png" alt="Association Service Loisirs Vacances - 6 rue des Clairons - 54210 Saint Nicolas de Port" /></div></div> </body> </html>
La page déconnection (deconnection.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143 <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Association Services Loisirs Vacances - Tourisme Adapte</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <link href="../styles/style.css" rel="stylesheet" type="text/css" media="screen" /> <link rel="shortcut icon" type="image/x-icon" href="http://www.picdo.net/fichiers/2010/4/8/96cc22fe-9c05-4c78-bee6-e683a6d07c6b_favicon.ico" /> </head> <body> <!-- Fonction PHP session et date --> <!-- Fin de la fonction --> <div id="body1"> <!-- Bannière de haut de page --> <div id="header"> </div> <div id="body2"> <div id="date"> <p> Nous sommes le 06 janvier 2015 </p> </div> <!--centrage des post-it--> <center> <br> <!--bouton quitter--> <div align='center'> <a href='deconnection.php'><button> Quitter </button></a> </div> <br> <!--ouverture du tableau--> <?php echo "<table border = 0><tr><td>";?> <!-- Le menu des séjours --> <div id="menu1"> <div class="menu_h"> <img src="../images/menu_h.png" alt="Menu_h" /> </div> <div class="menu_m"> <p class="titre_menu">Sejour</p> <center> <?php //connexion au serveur $db = mysql_connect('localhost', 'root', ''); //choix de la base mysql_select_db('carnetdevoyage', $db); //définition de UTF8 sur la chaîne de connexion //afin d'éviter le problème des caractères spéciaux ou accents mysql_query("SET NAMES UTF8"); //requête pour afficher la liste des séjours auquel on a participé $reqSejour = "SELECT SejVille, SejPays, SejDateDebut, SejDateFin, SejId FROM identifiant, participer, sejour WHERE identifiant.IdeId = participer.ParIdeId AND participer.ParSejId = sejour.SejId AND IdeLogin = '".$_SESSION['login']."' ORDER BY SejDateDebut"; $resultreq = Mysql_query($reqSejour); //si on a déjà participé if($row = Mysql_Fetch_row($resultreq)){ //affichage de la ligne 1 dans la première case du tableau echo "<a href='article.php?sejourId=".$row[4]."'>".$row[0]."</a><br>"; echo $row[1]."<br>"; echo $row[2]."<br>"; echo $row[3]."<br>"; ?> </div> <div class="menu_b"> <img src="../images/menu_b.png" alt="Menu_b" /> </div> </div> <?php echo "</td>"; //on initialise un compteur pour revenir à la ligne au 5ème <td> $compteur = 1; //le tant_que affiche les autres lignes. Il n'affiche rien s'il n'y en a pas while($row = Mysql_Fetch_row($resultreq)){ //test pour fermer une deuxième ligne if ($compteur % 3 == 0) {echo "</tr><tr>";} $compteur += 1; //cases du tableau echo "<td>"; ?> <!-- Le menu des séjours --> <div id="menu1"> <div class="menu_h"> <img src="../images/menu_h.png" alt="Menu_h" /> </div> <div class="menu_m"> <p class="titre_menu">Sejour</p> <center> <?php echo "<a href='article.php?sejourId=".$row[4]."'>".$row[0]."</a><br>"; echo $row[1]."<br>"; echo $row[2]."<br>"; echo $row[3]."<br>"; ?> </center> </div> <div class="menu_b"> <img src="../images/menu_b.png" alt="Menu_b" /> </div> </div> <!--le menu des séjours est fermé ici--> <?php //fermeture des cases echo "</td>"; } //fermeture du tableau echo "</table>"; } //sinon on a participé à aucun séjour else { echo ("<p>Vous n'avez participé <br>à aucun séjour</p>"); } ?> </center> </div> </div> </div> <!-- Pied de page --> <div id="footer"><div id="img_footer"><img src="../images/txt_aslv.png" alt="Association Service Loisirs Vacances - 6 rue des Clairons - 54210 Saint Nicolas de Port" /></div></div> </body> </html>
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php session_start(); session_destroy(); header('Location: ../index.php'); ?>
Cordialement.
Partager