|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() Inscription : octobre 2005 Messages : 427 ![]() |
Bonjour!
Bon je me tire les cheveux depuis un moment maintenant sur un problème que je pensais simple. Je veux éviter sur mon site que deux entitées soient connectées sur un même compte (même login). Donc ni une ni deux, j'ai rajouté dans ma table utilisateur une colonne id_session lorsque l'utilsateur se connecte selon un login A, le champ est mis à jour avec sa session et si un second utilisateur se connecte avec le login A, j'aimerais que le premier soit déconnecté (session vidée). Code :
J'ai essayé plusieurs méthodes, mais à chaque fois le comportement des sessions est totalement erratique et pour tout dire à mon sens assez inexplicable. Quelqu'un saurait m'éclairer? |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2003 Messages : 2 018 ![]() |
Bonjour,
Utilise session_regenerate_id(true) session_regenerate_id() va remplacer l'identifiant de session courant par un nouveau, généré automatiquement, tout en conservant les valeurs de session. en paramètre : delete_old_session Si l'on doit effacer l'ancien fichier de session associé ou pas. Par défaut, FALSE. Voir DOC PHP
__________________
N1bus Modérateur Web / PHP Aucune demande technique ne sera traitée par MP . Merci PHP/GD : Génération d'un code-barre Code 39 FCKEditor : Modifier la largeur des listes déroulantes PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS |
|
|
00
|
|
|
#3 | ||
|
Membre éclairé
![]() Inscription : octobre 2005 Messages : 427 ![]() |
Ca ne marche pas:
Code :
Edit: oui donc avec cette méthode j'en reviens au comportement erratique à savoir: Aucune des deux sessions n'est détruite, mais en fait la même session est partagée par les deux postes, ainsi si je ferme la session d'un côté, de l'autre, elle est détruite aussi, et chose plus étrange si je me déconnecte d'un côté et de l'autre et que je me reconnecte, l'autre se retrouve reconnecté dans le même temps... |
||
|
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Personnellement je ne comprends pas votre système : votre identifiant de session n'est, semble-t-il, pas mis à jour dans votre base de données donc à quoi bon en régénérer un nouveau ? De plus, je pense que les appels session_start et session_id sont mal utilisés : session_id doit être appelé avant pour fixer l'identifiant et, logiquement, après pour obtenir l'identifiant courant (surtout si la session n'a pas encore été créée).
Vous devriez éventuellement regarder la méthode présentée dans le tutoriel : Utiliser une base de données pour sécuriser vos sessions. |
|
|
00
|
|
|
#5 | ||
|
Membre éclairé
![]() Inscription : octobre 2005 Messages : 427 ![]() |
J'ai déjà regardé ce tutoriel, mais c'est largement trop 'compliqué' pour l'utilisation que je veux en avoir.
Pour ce qui est de l'exemple donné, effectivement il manque une partie du code où je réinsère dans la base le nouvel ID Code :
$request = "UPDATE users SET id_session='".$id_session."' WHERE id_player=".$id; Code :
Il serait largement plus simple de pouvoir détruire une session à partir d'un id sans avoir à se positionner sur cette session... |
||
|
|
00
|
|
|
#6 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
C'est ce qui est proposé dans le tutoriel puisque le navigateur et l'adresse IP permettent d'identifier l'utilisateur, sa connexion en cours disons. Chaque méthode présente des avantages et des inconvénients notamment en terme d'accessibilité. |
|
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : octobre 2005 Messages : 427 ![]() |
L'idée étant de fait de dire en cas d'une nouvelle 'action' de la part de l'utilisateur de le déconnecter en vérifiant les données en base, cela étant ça pose plusieurs problèmes, le plus important pour moi étant l'alourdissement quand même conséquent du nombre de requête 'juste' pour ça...
Je trouve dommage de faire des requêtes à chaque action multipliées par le nombre d'utilisateurs pour une simple vérification qui je pensais pouvait se faire à la connection... Je vais voir à mettre une solution en place sur l'id lors de l'affichage des pages, on va bien voir... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com