IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

variable session détruite changement page


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Par défaut variable session détruite changement page
    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)
    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>
    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
    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'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
    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>
    La page déconnection (deconnection.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    session_start();
    session_destroy();
    header('Location: ../index.php');
    ?>
    Merci d'avance pour votre aide.

    Cordialement.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Par défaut
    J'ai trouvé la solution.

    est différent de

    L'erreur est humaine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. variables session perdues entre pages
    Par laurent1133 dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2010, 18h10
  2. Réponses: 10
    Dernier message: 15/05/2010, 13h37
  3. Perte des variable de session au changement de page.
    Par [Xt-6] dans le forum Langage
    Réponses: 11
    Dernier message: 15/01/2009, 21h28
  4. problème changement session entre 2 pages
    Par taka10 dans le forum Langage
    Réponses: 1
    Dernier message: 10/02/2007, 13h41
  5. Réponses: 8
    Dernier message: 12/07/2006, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo