Php+js comment limiter 1 session par login
Fermé
oscarapace
Messages postés
56
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
19 juin 2009
-
2 avril 2009 à 10:19
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 2 avril 2009 à 15:00
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 2 avril 2009 à 15:00
A voir également:
- Php+js comment limiter 1 session par login
- Js round ✓ - Forum Javascript
- Easy php - Télécharger - Divers Web & Internet
- Session invalide ou obsolète - Forum Consommation & Internet
- Facebook.com/login/identify en francais - Forum Facebook
- J’arrive plus à me connecter à mon compte Faceboo - Forum Facebook
3 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
2 avril 2009 à 10:37
2 avril 2009 à 10:37
j'ai une vague idée, avec ta solution ajax (ou lors du chargement d'une nouvelle page)
lorsque l'utilisateur se log, sa session va créer une valeur aléatoire (random) qui sera stockée dans $_SESSION['unique_login'], et dans la base de données. La base de données contiendra les dernieres valeurs de cette variable
lors du chargement d'une nouvelle page, on vérifie que le unique_login soit bien le dernier crée.. si c'est pas le cas, tu supprime la session et affiches un message "vous vous etes conencté depuis un autre ordinateur"
lorsque l'utilisateur se log, sa session va créer une valeur aléatoire (random) qui sera stockée dans $_SESSION['unique_login'], et dans la base de données. La base de données contiendra les dernieres valeurs de cette variable
lors du chargement d'une nouvelle page, on vérifie que le unique_login soit bien le dernier crée.. si c'est pas le cas, tu supprime la session et affiches un message "vous vous etes conencté depuis un autre ordinateur"
oscarapace
Messages postés
56
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
19 juin 2009
14
2 avril 2009 à 11:30
2 avril 2009 à 11:30
je ne vois pas ce que cela change.
exemple :
A se connecte sur le site. il consulte qq pages et ferme son navigateur sans faire de log out.
A réouvre le site et veut se connecter, au pire il a même changé de poste de travail. le uniq_id a changé, donc ça le bloque ???
exemple :
A se connecte sur le site. il consulte qq pages et ferme son navigateur sans faire de log out.
A réouvre le site et veut se connecter, au pire il a même changé de poste de travail. le uniq_id a changé, donc ça le bloque ???
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
2 avril 2009 à 11:47
2 avril 2009 à 11:47
non, mais ca ferme la première session qu'il utilisait , et le laisse uniquer uniquement la 2°
et ca lui met "vous venez de vous conencter depuis un autre poste
sinon, si tu veux empecher une nouvelle conenxion, dans la table "utilisateurs" de ta bdd, tu met un champs dernière activité, que tu met a jour a chaque chargement de page, et genre toutes les 15 secondes grace a ajax
->lors du login, tu vérifie dans la bdd qu'il a pas eu d'activité dans les 15 dernières secondes !
cete solution empèche une nouvelle connexion, l'autre solution permetait de fermer automatiquement les anciennes connexions... 2 philosophies différentes
au choix: message vous etes deja connecté depuis un autre ordi
ou, vous venez de vous connecter sur un autre ordi
pour la bdd, je préconise l'usage d'une table en mémoire (pas enregistrée sur le disk) pour ne pas ralentir le serveur
et ca lui met "vous venez de vous conencter depuis un autre poste
sinon, si tu veux empecher une nouvelle conenxion, dans la table "utilisateurs" de ta bdd, tu met un champs dernière activité, que tu met a jour a chaque chargement de page, et genre toutes les 15 secondes grace a ajax
->lors du login, tu vérifie dans la bdd qu'il a pas eu d'activité dans les 15 dernières secondes !
cete solution empèche une nouvelle connexion, l'autre solution permetait de fermer automatiquement les anciennes connexions... 2 philosophies différentes
au choix: message vous etes deja connecté depuis un autre ordi
ou, vous venez de vous connecter sur un autre ordi
pour la bdd, je préconise l'usage d'une table en mémoire (pas enregistrée sur le disk) pour ne pas ralentir le serveur
oscarapace
Messages postés
56
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
19 juin 2009
14
2 avril 2009 à 11:59
2 avril 2009 à 11:59
oui je pense retenir la solution ajax pour ne pas fermer la première session mais empecher l'ouverture d'une deuxième session, sans bloquer qq'un qui ferme son navigateur et revient (mis à part une attente de 10 secondes du fait du signal ajax).
je crois qu'on peut aussi utiliser json et écrire une balise script js dans le header de façon transparente, ce qui a pour effet de lancer une requete au site sans passer par des fonctions ajax qui ne sont peut etre pas toujours compatibles, en plus ces requetes sont moins visibles.
merci
je crois qu'on peut aussi utiliser json et écrire une balise script js dans le header de façon transparente, ce qui a pour effet de lancer une requete au site sans passer par des fonctions ajax qui ne sont peut etre pas toujours compatibles, en plus ces requetes sont moins visibles.
merci
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
2 avril 2009 à 13:44
2 avril 2009 à 13:44
pour le JS, je connais pas trop, je ne développe pas trop de sites (je le ferai si j'étais bon en design ;) et le html/css ca me prend la tete.. surtout pour les compatibilités inter navigateurs...
oscarapace
Messages postés
56
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
19 juin 2009
14
>
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
2 avril 2009 à 14:59
2 avril 2009 à 14:59
il suffit de récupèrer jsr_class.js qui ne fait que quelques lignes.
ensuite dans un script il suffit de mettre ces qq lignes pour envoyer une requete :
var req = 'http://url_de_ma_requete'
jsreq = new JSONscriptRequest(req);
jsjreq.buildScriptTag();
jsreq.addScriptTag();
l'avantage est que ca marche sur tous les navigateurs et que la requete peut aller sur un autre domaine, par contre c'est asynchrone et ce n'est pas idéal si on doit récupérer des infos par la requete
ensuite dans un script il suffit de mettre ces qq lignes pour envoyer une requete :
var req = 'http://url_de_ma_requete'
jsreq = new JSONscriptRequest(req);
jsjreq.buildScriptTag();
jsreq.addScriptTag();
l'avantage est que ca marche sur tous les navigateurs et que la requete peut aller sur un autre domaine, par contre c'est asynchrone et ce n'est pas idéal si on doit récupérer des infos par la requete
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
>
oscarapace
Messages postés
56
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
19 juin 2009
2 avril 2009 à 15:00
2 avril 2009 à 15:00
pas grave, ta requete servira juste de watchdog ...