|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() |
Bonjour à tous, je vous explique mon problème :
Le site que je développe en php permet de se loguer avec un identifiant et un mot de passe, une fois authentifié je met une valeur à jour dans ma base de données (connecte=Vrai) comme ça un autre utilisateur ne peut pas se servir du même compte si je me déconnecte en cliquant sur un bouton déconnecter je met une valeur à jour (connecte=Faux). Le problème est que je si quitte le navigateur sans me déconnecter la valeur n'est pas mise à jour et il impossible de se reconnecter. Comment puis je palier à mon problème ??? |
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
C'est une question récurrente : le protocole HTTP est sans état donc le plus fiable reste de se baser sur un timestamp, mis à jour à chaque visite, et d'estimer qu'au-delà d'une certaine période l'utilisateur est inactif. En revanche, c'est un peu plus lourd (le nombre de requêtes s'en trouvant augmenté).
|
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() |
Le problème c'est que gérer le fait que l'utilisateur est inactif pendant un temps donné n'est pas simple et cela ne changera rien au fait que si il ferme le navigateur brutalement ma valeur ne sera pas remise à jour correctement.
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Tu as d'autres solutions de contournement : tu peux mémoriser dans la session l'adresse ip de l'utilisateur qui est connecté. Comme ca, si tu vois qu'un utilisateur essaie de se connecter alors que dans ta base il est déjà marqué comme connecté, tu vérifies l'ip. Si c'est la meme, tu le laisses entrer, sinon tu dis "ce compte est déjà utilisé pour le moment blablabla"
|
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
Mais dans quoi dois je mémoriser l'adresse ip ??? un fichier, une variable dans ma base de données ???
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Ben dans la base de données non? Tu as une colonne qui te dit si une personne est connectée ou pas, avec une date de derniere connexion/action non?
Ben tu remplaces la colonne de connecté/non connecté par une adresse ip. |
|
|
00
|
|
|
#7 | |
|
Membre régulier
![]() Inscription : juin 2007 Messages : 86 ![]() |
Citation:
Ou alors faut mettre en place en parallèle une détection d'inactivité comme dit plus haut. Mais même la, ca voudrai dire qu'en théorie, si l'utilisateur quite son navigateur puis se reconecte mettons dans la minute qui suit d'une autre IP il sera bloqué. Non, je croi qu'il n'y a pas vraiment de solution parfaite. Ou alors des trucs super lourd-dingue genre de l'Ajax qui transmet un signe de vie très régulierement et une espèce de tache crond qui lance un script php qui met "connecte=faux" si pas de signe de vie... ..bonjour le serveur
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com