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

EDI, CMS, Outils, Scripts et API PHP Discussion :

limiter l'utilisateur à une seul ouverture de mon site web


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 52
    Points : 33
    Points
    33
    Par défaut limiter l'utilisateur à une seul ouverture de mon site web
    Bonjour,

    je cherche à limiter les utilisateurs de mon site à une seul ouverture de mon site (une seul page web ou onglet).

    Si quelqu'un a une idée ?

    Cordialement.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je vois pas bien comment faire. Pourquoi as-tu ce besoin ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    Mon site est groumant en ressource serveur, un page html effectue des requêtes ajax chaque seconde. Ainsi, si le l'utilisateur ouvre plusieurs page de mon site, il multipliera les requêtes ajax et donc augmentera les besoins en ressource serveur qui sont assez limitées.

  4. #4
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    L'empêcher d’ouvrir deux fois ton site c'est impossible.

    Après tu peux peut être réussir à bidouiller un système pour que les requêtes ne soit exécuté que sur une seul page (la première).
    Par exemple en enregistrant une valeur en variable de session et si cette valeur est présente alors les requêtes ajax ne s'effectuent pas.
    Par contre je voit mal comment c'est réalisable sans prendre le risque de bloquer la première page qui risque à son tour de perdre les requête une fois que la variable de session est enregistrer.

  5. #5
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    On pourrait effectivement essayer quelque chose avec des tokens sur cookie et du JavaScript mais ce serait hautement aléatoire.

    La solution la plus propre dans ton cas est de considérer l'accès au ressources comme quelque chose de bloquant et donc poser des verrous utilisateurs (sur session) ou physiques (flock ou LOCK TABLE) qui empêchent l'accès à la ressource par un autre processus et le mettrait en attente ou le ferait échouer.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 52
    Points : 33
    Points
    33
    Par défaut
    merci pour vos réponses. J'y avais réfléchi et ça m'avait l'air compliqué, voir impossible. C'est pour ça que je suis venu voir des experts pour débattre sur la question.
    +

  7. #7
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    Sinon la solution la plus simple serrait de faire en sorte de penser les pages afin que l'utilisateur n'ai aucune utilité à en ouvrir deux.

    Voir alléger le traitement Ajax également.

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Avec un simple verrou pour les requêtes Ajax c'est assez facile en fait:
    1. une premiere requête part pour mobiliser la ressource
    2. le script réponds "ok" ou "ko" avec un code d'erreur et un message (JSON quand tu nous tiens)
    3. si la ressource est disponible, on commence l'enchainement des requêtes Ajax (sinon on mets un gros message d'erreur et on bloque la page)
    4. une fois qu'on a fini, on envoie une requête Ajax pour libérer la ressource


    Il faut prévoir un mécanisme de timeout pour éviter que l'utilisateur qui s'arrête en plein milieu ne puisse plus jamais accéder à la ressource.

    Coté PHP c'est assez simple: la requête qui à demandé à ouvrir la ressource se voit attribuer un jeton, ce jeton sera posé sur session et il devra être renvoyé par chaque requête Ajax durant le processus pour valider qu'il n'y a bien qu'un seul script qui accède (pensons au petit malin qui lancerait malgré tout les requêtes manuellement).

Discussions similaires

  1. Création ou Intégration d'une galerie vidéo dans mon site web
    Par [ced] dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 08/02/2010, 23h04
  2. Probleme de block mal placé sur une seule page de mon site
    Par cuisto44000 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/03/2009, 16h06
  3. Réponses: 1
    Dernier message: 22/09/2008, 13h18
  4. [FAQ] une seule instance de mon programme
    Par kacedda dans le forum C#
    Réponses: 6
    Dernier message: 01/02/2007, 14h37

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