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 :

N'autoriser l'accès d'un compte sur mon site que d'une seule personne à la fois


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut N'autoriser l'accès d'un compte sur mon site que d'une seule personne à la fois
    Désolé pour le titre explicite

    Bonjour,

    Donc comme indiqué, j'aimerai savoir par quel moyen le plus fiable je peux permettre qu'un utilisateur à la fois qui s'authentifie à son compte et éviter ainsi 2 ou plusieurs connexions simultanées à un même compte.

    Pour l'instant j'ai trouvé la solution de créer une sorte de flag is_connected dans la DB = 1 si il s'est authentifié et = 0 lorsqu'il se déconnecte...

    Le problème est que les utilisateur ne se déconnectent pas souvent et quitte plutôt le navigateur ou change de domaine...

    En gros, pour que ma solution fonctionne, ma question est: Y a t-il un moyen de savoir si la session en cours de l'user s'est terminé ? (et pas forcément que l'user s'est déconnecter en cliquant sur déconnexion!)

    Sinon y a t-il une meilleur solution que mon flag en DB ?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Je viens d'avoir une autre idée, dites moi ce que vous en pensez:


    1) USER1 se connecte avec le compte "TOTO"
    2) Son ID SESSION est enregistré en DB
    3) USER2 arrive et tente aussi de se connecter a "TOTO"
    4) Le programme check si y a deja un ID SESSION ==> OUI, donc un nouvel ID SESSION est crée pour USER 2 qui vient écraser l'ancien ID SESSION de USER1
    5) USER2 est connecté
    6) Parallèlement, USER1, en continuant sa navigation se fait déconnecté car son ID SESSION != de celui en DB et on le prévient avec un message "Un autre user s'est connecté sur le compte TOTO, vous avez été déconnecté"

    En fait, dans cette solution, c'est le dernier connecté qui a la connexion. Donc, plus de problème que USER1 ferme brutalement son navigateur sans s'être déconnecté...


    Qu'en pensez-vous?? Ça tient la route non?

  3. #3
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Citation Envoyé par benthebest Voir le message
    En fait, dans cette solution, c'est le dernier connecté qui a la connexion. Donc, plus de problème que USER1 ferme brutalement son navigateur sans s'être déconnecté...
    Oui mais le user1 se reconnecte et deconnecte le user2 qui lui meme se reconnecte puis deconnecte le user1 quand arrive le user3 qui deconnecte le user1 et le user2 alors le user1 et le user2 se reconnectent...

    Bref ca tient pas la route

    Moi j'insererai à chaque action du user connecté un timestamp dans la base et personne ne pourrais se deconnecter le time()-timestamp < 10minutes par exemple et si un user se connecte (ie time()-timestamp > 10) alors le user1 est deconnecté

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Oui mais le user1 se reconnecte et deconnecte le user2 qui lui meme se reconnecte puis deconnecte le user1 quand arrive le user3 qui deconnecte le user1 et le user2 alors le user1 et le user2 se reconnectent...

    Bref ca tient pas la route

    Moi j'insererai à chaque action du user connecté un timestamp dans la base et personne ne pourrais se deconnecter le time()-timestamp < 10minutes par exemple et si un user se connecte (ie time()-timestamp > 10) alors le user1 est deconnecté
    Attend, je comprend pas pourquoi tu dis cela, si user1 ne fait pas la démarche de se reconnecter, il ne se reconnectera pas tout seul!

    Sinon, oui l'idée est bien de connecter le dernier arrivé exactement comme le fait msn messenger lorsqu'on se connecte à son compte alors qu'une autre session est ouverte sur un autre ordi par exemple....

    De plus l'idée de ton timestamp oblige quelqu'un à rester connecté au minimum 10 minutes...

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Citation Envoyé par benthebest Voir le message
    Attend, je comprend pas pourquoi tu dis cela, si user1 ne fait pas la démarche de se reconnecter, il ne se reconnectera pas tout seul!
    Et s'ils le font ?

    bref, il suffit que tu ais 2 utilisateurs qui veulent se connecter et ils n'arriveront donc jamais a se connecter plus que quelques secondes...et 2 utilisateurs sur un site web c'est vraiment pas bcp

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Désolé pour l'incruste.

    Je serais curieux de savoir le secteur d'activité, si ce n'est pas trop indiscret qui oblige à n'avoir qu'1 seule personne sur le site.
    Et la cerise sur le gâteau si ce n'est pas trop abusé
    Pour quelle raison ? Quelle impact y aurait il s'il venait en avoir un 2ème, un 3ème ?
    C'est la 1ère fois que je vois une telle demande ... d'où cette curiosité.

    Ceci dit, je partage l'avis de Madfrix, du controle sur le mot de passe + contrôle de session + une durée max (expiration) en cas de non fermeture du navigateur.


    Ceci dit, peut être que le fait qu'une session soit créé, ceci pourrait aussi être un élément pour dire, ou refuser d'ouvrir/créer une seconde session.
    En somme, 1 seule session est possible ou autorisé.
    Pour le mettre en place ??? Je ne vois pas trop cependant.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Et s'ils le font ?

    bref, il suffit que tu ais 2 utilisateurs qui veulent se connecter et ils n'arriveront donc jamais a se connecter plus que quelques secondes...et 2 utilisateurs sur un site web c'est vraiment pas bcp
    Je précise, c'est pas 2 utilisateurs sur le site lol ! C'est 2 utilisateurs voulant se connecter sur le MEME compte (login et mdp identique) et en meme temps!!!

    En meme temps, en general chacun a son compte donc c'est sensé déjà etre un cas rare. Si ils le font il y aura de toute facon un message qui apparait en leur disant que quelqu'un d'autre s'est connecté a ce compte d'ou sa deconnexion, il finira donc bien par comprendre

    C'est juste par sécurité, car si 2 personnes modifient des données simultanément, dans mon cas ça peut poser problème...


    Héhé, je viens de faire un essai: essayez par exemple de vous connecter à votre compte facebook à partir de IE, puis ouvrez Firefox et faite de meme: il y a deconnexion sur IE!!

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/02/2014, 22h23
  2. Afficher une vidéo sur mon site à partir d'une url ou permalien comme facebook ?
    Par shivato dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/06/2010, 11h08
  3. [MySQL] modification de son compte sur mon site avec requête sql
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 01/07/2008, 17h56
  4. Autoriser l'accès au serveur apache sur le reseau
    Par PoichOU dans le forum Apache
    Réponses: 14
    Dernier message: 27/02/2008, 13h33
  5. Réponses: 4
    Dernier message: 01/07/2007, 12h59

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