|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 2 ![]() |
Bonjour,
Est ce qu'il existe une façon (re)connue pour ne permettre qu'à un seul client d'accéder à des fonctionnalités d'un site? Le premier pourrait utiliser toutes les fonctions, le deuxième aurait certains champs bloqués mais serait comme averti qu'il peut à un certain moment (a la deconnexion du premier) manier les outils du site. J'ai une idée pour le faire (écrire une ligne dans une table et l'effacer à chaque ouverture/fermeture de session, comme ca, on peut savoir si qqun utilise deja les outils, et/ou ds quel ordre les connections se sont faites, pour passer les pouvoirs à l'utilisateur suivant), mais ca me semble assez foireux.. Merci d'avance Kooxi |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Oui, mais si le premier utilisateur ferme son navigateur sans cliquer sur le bouton deconnexion, ton script ne sera pas au courant et le deuxième utilisateur ne pourra toujours rien faire...
|
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : avril 2006 Messages : 300 ![]() |
Tu peux peut-être gérer ça en limitant le temps pour les sessions inactives:
si 1 client logué ne fait aucune action sur ton site pendant 5 mn. par ex., tu le déconnectes et tu donnes la main au suivant. tu enregistres dans la base un timestamp pour le client logué que tu update à chaque requête qu'il fait sur ton site. |
|
|
00
|
|
|
#4 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
La solution proposée par renaudjuif peut fonctionner mais, pour continuer dans la lancée de Mr N., il peut y avoir un problème si le 1° utilisateur reste inactif ce temps (5 minutes dans notre exemple) puis revient sur ta page : il n'aura plus rien et sera bien étonné de se voir bridé de la sorte.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 2 ![]() |
Merci pour ces pistes. En bidouillant comme vous me l'avez montré, on peut arriver à gérer tous ces ptits problèmes. J'aurais bien aimé un truc propre et précis, mais ca doit être une préoccupation de fille
Kooxi |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : mai 2006 Messages : 6 ![]() |
Salut,
j'ai le même soucis que toi en ce moment et je voulais savoir si t'avais trouvé une solution au problème? j'aimerai que les internautes ne puissent ouvrir qu'une seule session à la fois avec le même identifiant et assurer le fonctionnement du système même si l'utilisateur connecté ferme son navigateur sans se déconnecter. Merci |
|
|
00
|
|
|
#7 | |
|
Membre habitué
![]() Inscription : février 2005 Messages : 153 ![]() |
Tu met un champ dans ta base online a 1 une fois connecter et si il retente une connexion si le champ est a 1 alors tu lui dit pas possible.
Citation:
|
|
|
|
00
|
|
|
#8 | |
|
Membre habitué
![]() Inscription : avril 2005 Messages : 272 ![]() |
Citation:
Je rappel au passage une régle importante : " Les utilisateurs font toujours naimportequoi ".
__________________
Orthographe => Message Privé constructif svp |
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : mai 2006 Messages : 6 ![]() |
Voila finalement comment je compte faire:
Je vais créer un script qui sera exécuté après chaque opération sur la base de données et à l'accès à une page du site. Ce script aura pour but de mettre à jour l'heure et la date de la dernière opération de l'utilisateur. voici l'algo : si (!session) alors ___si (etatuser=0) alors //une fois connecté on met le statu du user à 1 ______identification ___sinon si (meme@ip ou delaisdépassé) alors //suite à une fermeture du navig. sans logout ______identification ___sinon ______eject("Session déjà ouverte avec ces paramètres") ___finsi sinon si (delaidépassé) alors //15mn expirés ___identification sinon ___traitementdelademande finsi delaidepassé = dernière opération vieille de plus de 15mn Inconvenient (mais peut être considéré comme punition aux users indisciplinés) : s'il ferme son navigateur sans se déconnecter proprement, il lui faut attendre au max 15 mn pour pouvoir se reconnecter d'un autre poste(à condition qu'il n'utilise pas la même @IP Voila en gros ce à quoi j'ai pensé. Je ne l'ai pas encore mis en oeuvre mais déjà je demande votre avis là dessus. Peut être que j'ai pas pris en compte un aspect du problème. Merci |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
juste pour ton histoire des 15 minutes.
imagine tu vas toi même sur ton site, et comme de par hasard tu y vas avec un navigateur capricieux, disons IE (pour l'exemple bien sur) et qu'il crashe. Bah il a planté pas grave, tu le relances (de toutes façon on est habitué) et la tu dois attendre 15 minutes ... gavant non ?? P.S : ne soyons pas mauvaise langue, quelque soit le browser si ca plante on est viré brutalement et donc pas le temps de se déconnecter.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#11 | ||
|
Membre chevronné
![]() Inscription : décembre 2005 Messages : 766 ![]() |
Code :
@ tchaOo° |
||
|
|
00
|
|
|
#12 | |
|
Invité régulier
![]() Inscription : mai 2006 Messages : 6 ![]() |
Citation:
Salut, le problème ne se pose pas si le navigateur crash. Selon l'algo son adresse IP enregistré lors de sa connexion n'aura pas changé et il lui sera juste demandé de s'identifier à nouveau! |
|
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
donc j'avais pas compris ton truc, c'est si le naviagteur se ferme, et que tu changes d'IP ? c'est ça ...
la je comprend mieux ton choix, mais dans le cas ou tu n'as pas d'IP fixe, tu gere ca comment ? en 56 Ko ca change donc tu peux planter ta connexion se reconnecter avec crash du navigateur, et donc tu attend. ou en ADSL, des fois il change d'IP, la déconnexion ne se sent pas mais tu as changé d'IP, du coup ca te déconnecte, ca fait quoi sur ton site ?
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#14 | |
|
Invité régulier
![]() Inscription : mai 2006 Messages : 6 ![]() |
Citation:
|
|
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Inscription : mai 2006 Messages : 1 294 ![]() |
tu peux ajouter un cookie qui stocke un ID pour ce probleme ....
quand il ce reconnecte tu fais ton choix si l'IP a changer par rapport a l'ID .. si tu es large au niveau ressourcs serveur (je pense surtout a la BP vers le serveur MySQL et au Nb de connexions possible), alors --> je te conseillerais de faire en dynamique (JS ou du flash) un test toute les Xsec (30 secondes ?) de la presence de l'utilisateur avec maj de la table MySQL qui stocke le timestamp, par contre cette table doit etre en HEAP et ne pas comporter d'autres colonnes a part l'ID ou l'IP comme index de table. car les 15mn c'est TROP, tu risques a tous les coups d'emmerder des utilisateurs ... sans compter que tu dois prendre en compte le gars qui a un navigateur a onglet et qui peut donc laisser la page ouverte indéfiniment ... |
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Pour faire comprendre à l'internaute qu'il ne doit pas rester inactif je place une sorte de sablier. javascript + image. plus le temps passe plus la jauge descend. Si la sablier est terminé il est automatiquement déconnecté. Si l'utilisateur ne veut pas être deconnecté il doit cliquer sur une petit bouton qui va mettre le compteur à zero (Ajax requete http en arriere plan). Lorsqu'il arrive à deux minutes avant la fin la jauge clignote pour attirer l'attention.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com