Interdire l'ouverture de plusieurs sessions simultanées

Fermé
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 11 août 2017 à 18:11
yg_be Messages postés 23235 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 septembre 2024 - 16 oct. 2017 à 21:03
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
12 août 2017 à 01:49
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 mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
14 août 2017 à 11:00
Merci Jordan !

J'ai compris le principe, je commence à le faire :p
0
yg_be Messages postés 23235 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 septembre 2024 Ambassadeur 1 538
16 oct. 2017 à 21:03
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