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 :

Perte des variables de sessions


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 167
    Par défaut Perte des variables de sessions
    Bonjour,

    alors mon problème est dans le titre, tout simplement !
    Maintenant je vais vous exposer mes sources au cas où vous y descelleriez une grossière erreur ....

    Voici ma page principale :
    Elle contient une partie login qui me servira pour la connexion au site.
    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
    <?php
    session_start();
    ?>
    
    <html>
    	<?php Require_once('./fonctions/connexion.php'); ?>
    	
    	<link rel="stylesheet" type="text/css" href="style/common.css">
    
    	<body>
    		<head>
    			<title>SVS - Accueil</title>
    		</head>
    
    		<center>
    			<div id="site">
    				
    				<div id="bandeau">
    					<?php include('./common/bandeau.php'); ?>
    				</div>
    				
    				<div id="gauche">
    					<div id="login">
    						<?php include('./common/login.php'); ?>
    					</div>
    					<div id="menu">
    						<?php include('./common/menu.php'); ?>
    					</div>
    				</div>
    				
    				<div id="contenu">
    					<div><br><b>Bienvenue sur le site du Saint-Vallier Sportif RUGBY !</b></div>
    					<div><?php include('./actualites/index.php'); ?></div>
    				</div>
    				
    				<div id="droit">
    					<div id="shootbox">
    						<?php include('./common/shootbox.php'); ?>
    					</div>
    					<div id="encarts">
    						<?php include('./common/encarts.php'); ?>
    					</div>
    					
    				</div>
    				
    				<div id="footer">
    					<?php include('./common/footer.php'); ?>
    				</div>
    			
    			</div>
    
    		</center>
    	</body>
    </html>
    Voici le code de la partie login :
    Il s'agit d'un simple formulaire php (si on est loggé, affichage des identifiants, sinon affichage du formulaire)

    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
    <fieldset>
    	<legend>Acc&egrave;s membres</legend>
    		<?php
    		if(!isset($_SESSION['logged']) || $_SESSION['logged'] == "KO") { ?>
    			<form method="post" action="./fonctions/login.php">
    				<div>
    					<table>
    						<tr>
    							<td><input name="user" type="text" size="15px" value="Utilisateur"/></td>
    						</tr>
    						<tr>
    							<td><input name="pass" type="password" size="15px" value="Mot de passe"/></td>
    						</tr>
    					</table>
    				</div>
    				<div style="margin-top:5px;" align="center">
    					<input type="submit" value="S'enregistrer"/>
    				</div>
    			</form>
    		<?php } elseif($_SESSION['logged'] = "OK") {
    			echo "<div>";
    			echo "<table><tr>";
    			echo "<td>".$_SESSION['user']."</td>";
    			echo "</tr><tr>";
    			echo "<td>".$_SESSION['droit']."</td>";
    			echo "</tr><tr>";
    			echo "<td><form method='post' action='./fonctions/unlog.php'><input type='submit' value='Se d&eacute;connecter'/></form></td>";
    			echo "</tr></table>";
    			echo "</div>";
    		} ?>
    </fieldset>
    Voici maintenant les sources de ma fonction de login appelé lors de la soumission du formulaire :
    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
    <?php
    Require_once('./connexion.php');
     
    connexion();
     
    $result = request('SELECT id_user, login_user, pwd_user, droit_user FROM users WHERE login_user = MD5("'.$_POST["user"].'") AND pwd_user = MD5("'.$_POST["pass"].'")');
    $row = mysql_fetch_row($result);
     
    if($row[0] != null){
    	$_SESSION['logged'] = "OK" ;
    	$_SESSION['user'] = $_POST["user"];
    	if($row[3] == "U"){
    		$_SESSION['droit'] = "Utilisateur simple";
    	} elseif($row[3] == "A") {
    		$_SESSION['droit'] = "Administrateur";
    	}
    }
    else{
    	$_SESSION['logged'] = "KO";
    }
     
    close_connexion();
     
    header("Location: ".$_SERVER['HTTP_REFERER']);
    ?>
    Tout à la fin, on recharge donc la page d'accueil qui contient le formulaire de login qui devrait détecter la variable de session et donc afficher les identifiants de l'utilisateur !
    Mais non, c'est le formulaire de login qui s'affiche car la variable de session "logged" est absente ...

    (J'ai fait un test et juste avant le header("Location: ".$_SERVER['HTTP_REFERER']);, j'ai bien toutes les variables de session renseigné correctement ...)

    Je vous remercie d'avance pour l'aide et les conseils que vous m'apporterez !

    Bizoo à tous !

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    tu as bien mis des "session_start()" avant d'utiliser les variables de session ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Hum... On voit bien que non (dans /fonctions/login.php, qui est appelé directement à la soumission du formulaire)

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

Discussions similaires

  1. [MySQL] Perte des variables de session
    Par jcaspar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2010, 16h57
  2. 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
  3. Perte des variables de session aléatoire
    Par dnkz dans le forum Langage
    Réponses: 1
    Dernier message: 25/04/2008, 16h27
  4. Réponses: 5
    Dernier message: 01/05/2007, 14h22
  5. Perte des variables de sessions
    Par Dayom dans le forum Langage
    Réponses: 12
    Dernier message: 17/07/2006, 11h04

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