Interdire l'ouverture de plusieurs sessions simultanées

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous !

Je rencontre un petit soucis avec mes utilisateurs qui se connectent à mon site sur plusieurs PC et jouent à un jeu en ligne pour gagner des lots.
Je voudrais, dans la mesure du possible, déconnecter l'utilisateur sur les autres machines et garder donc toujours une seule session active.

Par exemple :
UserA se connecte à 09:50:08 sur son PC, puis à 09:50:35 sur son mobile et à 09:50:51 sur son laptop.
Il sera déconnecté directement sur son PC et son mobile pour garder la dernière session ouverte qui est le laptop.

Pouvez-vous m'aider à le faire svp ?

Cordialement.

A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Il te suffit d'identifier l'IP de l'utilisateur (et voir même également le "materiel" qu'il utilise), associer le tout à l' ID de ton user ... et le tour est joué.
Tu t'assures que seul la dernière "combinaison" soit valide et tu supprime la variable de session pour les autres.

Bien entendu.. il faut que gères l'exécution du script de vérification à interval régulier. Pour ça il te faudra utiliser du Javascript et pour avoir accès (depuis le js) à du PHP .. il te faudra faire de l'ajax.

0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci Jordan !

J'ai compris le principe, je commence à le faire :p
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, je suggère de faire ainsi:
- avoir un champ "session" dans la table des utilisateurs
- au moment de créer une nouvelle session, enregistrer le moment dans le champ "session" de l'utilisateur
- enregistrer aussi ce moment dans une variable de la session
- chaque fois que l'utilisateur appelle une page du site, vérifier que le moment dans la variable de la session est identique au moment dans la base de données
- si les moments sont différents, invalider la session
-1