Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/12/2011, 12h41   #1
Invité régulier
 
Inscription : juin 2010
Messages : 43
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 43
Points : 9
Points : 9
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.
ajo12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 13h12   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Je vois pas bien comment faire. Pourquoi as-tu ce besoin ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 13h43   #3
Invité régulier
 
Inscription : juin 2010
Messages : 43
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 43
Points : 9
Points : 9
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.
ajo12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 14h25   #4
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
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.
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 14h47   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
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.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h25   #6
Invité régulier
 
Inscription : juin 2010
Messages : 43
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 43
Points : 9
Points : 9
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.
+
ajo12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h29   #7
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
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.
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 17h44   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
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).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h09.


 
 
 
 
Partenaires

Hébergement Web