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 :

Déconnexion avec plusieurs sessions


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut Déconnexion avec plusieurs sessions
    salut, j'ai un site web que j'ai sécurisé avec des sessions php mais j'ai un problème.
    En fait j'ai une page de login et je peux m'identifier avec divers log et mot de passe qui m'oriente vers un espace propre.Je veux pouvoir etre identifié avec les memes log et mot de passe sur plusieurs pc différents pour ca pas de problème ça marche.Par contre j'ai testé sur le site et si je me déconnecte sur un espace, je suis aussi déconnecté sur l'autre alors que ce n'est pas la meme session normalement!
    Enfait j'ai un lien déconnexion qui effectue la fonction suivante :

    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
    function deconnexion()
    {
    	//démarrage de la session
    	session_start();
    	session_unset() ;
    	//destruction de la session
    	session_destroy();
    	//header(Location : /gestion09/login.php); fonctionne mais la page de login s'affiche dans
    	//les frames(php s'exécute côté serveur), javaScript s'exécute côté client
    	?>
    	<script language="JavaScript"> 
      		top.location.replace ('/gestion09/login.php') 
     	</script>
      <?php
    	exit;
    }
    j'ai testé sur un seul PC mais si j'ouvre 2 sessions différentes dans 2 fenêtres avec des log et mot de passe diférents, si je clique sur déconnexion dans une fenêtre, ça me déconnecte dans l'autre fenêtre aussi!
    En fait si je fait une autre action sur la fenetre où je n'ai pas fait "déconnexion" ça me renvoie vers la page de login comme si j'étais déconnecté aussi.
    comment remédier à cela?

  2. #2
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut
    voila la vérif des log et mdp :
    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
    <?php
    //si la variable superglobale $_POST existe et que les champs ne sont pas vides
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password']))
    {
    	//connexion à la base
    	require("config.php3");
    	$connexion=mysql_connect($host, $log, $passe);
    	mysql_select_db($base);
    	//on récupère les champs login et password en évitant les caractères html
    	$pseudo=htmlspecialchars($_POST['login']);
    	$password=htmlspecialchars($_POST['password']);
    	//récupération des informations du membre par rapport au pseudo entré
    	$query="SELECT * FROM membre where pseudo='$pseudo'";
    	$resultat=mysql_query($query, $connexion);
    	$donnees=mysql_fetch_array($resultat);
    	//comparaison du mot de passe entré et du mot de passe en base(hashage)
    	//si bon mot de passe
    	if(md5($password)==$donnees['id'])
    	{	//si il appartient au groupe afpa(afpa, rep03, moi09)
    		if($donnees['groupe']=="afpa")
    			{
    				//démarrage d'une session
    				session_start();
    				//enregistrement des variables sessions : identifiant, droit(répertoire), 
    				//groupe(afpa ou mission) et heure de l'accès à la page pour la gestion du délai d'inactivité
    				$_SESSION['id']=$donnees['id_membre'];
    				$_SESSION['droit']=$donnees['destination'];
    				$_SESSION['groupe']=$donnees['groupe'];
    				$_SESSION['dernier_acces']=time();
    				//redirection vers l'index où le traitement des sessions sera fait
    				header("Location: afpa/index.php");
    				exit;
    			}
    		//si il appartient au groupe mission locale
    		else if($donnees['groupe']=="mission locale")
    		{
    			//démarrage d'une session
    			session_start();
    			//enregistrement des variables sessions
    			$_SESSION['id']=$donnees['id_membre'];
    			$_SESSION['droit']=$donnees['destination'];
    			$_SESSION['groupe']=$donnees['groupe'];
    			$_SESSION['ville']=$donnees['ville'];
    			$_SESSION['nom']=$donnees['nom'];
    			$_SESSION['dernier_acces']=time();
    			header("Location: afpa/index.php");
    			exit;
    		}
     
    		//si c'est un ajout  d'identifiants
    		else if($donnees['groupe']=="administration")
    		{
    			//démarrage de la session
    			session_start();
    			//enregistrement des variables sessions
    			$_SESSION['id']=$donnees['id_membre'];
    			$_SESSION['groupe']=$donnees['groupe'];
    			$_SESSION['ville']=$donnees['ville'];
    			$_SESSION['nom']=$donnees['nom'];
    			$_SESSION['dernier_acces']=time();
    			header("Location: ajoutIdent.php");
    			exit;
    		}
    	}
    	//si mauvais mot de passe
    	else
    	{
    		//affichage d'un message d'erreur
    		echo "<font color='red'><center>mauvais login ou mot de passe</center></font>";
    		//affichage du formulaire d'identification
    		include("login.php");
    		exit;
    	}
     
    }
    //si les variables sessions n'existent pas ou sont vides
    else 
    {
    	//affichage message d'erreur
    	echo "<font color='red'>remplissez tous les champs</font>";
    	//affichage du formulaire d'identification
    	include("login.php");
    	exit;
    }
    ?>
    en fait je n'ai qu'une seule session à chaque fois et à moins de changer de pc ou de navigateur je ne peux pas avoire 2 sessions en cours dans le meme navigateur.
    comment je peux faire pour créer des sessions distinctes?

  3. #3
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Je travailles en gros de la même façon que toi.
    En gros je fais simplement ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function deconnexion()
    {
     
    	//destruction de la session
    	session_destroy();
     
    	?>
    	<script language="JavaScript"> 
      		top.location.replace ('/gestion09/login.php') 
     	</script>
      <?php
    	exit;
    }

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonsoir ,
    Je viens ajouter mon grain de sel

    Je lis souvent des méthodes de déconnection ok pour les sessions,
    mais en fait si nous sommes dans un systéme avec cookies, pffff...
    ça sert a quoi, que contient donc cette session de si confidentiel ....

    Oui lorsque je suis par exemple sur un forum, si j' ais coché se souvenir de moi, cela se traduit par le fait qu' un Cookies est sur mon micro avec mon pseudo et mon mot de passe ..

    alors si nous vidons coté serveur ma session , ou en timeout ou en demande de déconnection, si je reviens, mon cookies sera relu et les premiéres valeurs de session (login) seront reflaguées !!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2018, 11h01
  2. [PHP 5.0] panier en session avec plusieurs option par article
    Par saperlipopeye dans le forum Langage
    Réponses: 14
    Dernier message: 16/03/2010, 10h21
  3. Session et Panier avec plusieurs articles
    Par skogenskrig dans le forum Langage
    Réponses: 7
    Dernier message: 19/05/2009, 15h44
  4. question déconnexion avec session
    Par opeo dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2007, 10h11

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