Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3082 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  ouvrir une seule et unique session?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ouvrir une seule et unique session?

n°1512691
Moriaben
Posté le 09-02-2007 à 16:15:18  profilanswer
 

Bonjour à tous,
 
j'ai réalisé un petit site qui demande login/mdp avec ouverture de session (puis je vérifie au début de toutes les pages que les variables $_SESSION['login'] et $_SESSION['pwd'] existent sinon retour vers la page de login)
 
ça marche bien, cependant je souhaiterais faire en sorte qu'il n'y ait qu'un utilisateur en meme tps. Donc qqun se connecte, il entre sur le site. si une 2eme personne essaye de se connecter, il reçoit un message d'erreur précisant qu'un client est déjà connecté.
 
est-ce possible, et si oui, comment?
 
merci d'avance :)

mood
Publicité
Posté le 09-02-2007 à 16:15:18  profilanswer
 

n°1512698
soju
One shot !
Posté le 09-02-2007 à 16:27:31  profilanswer
 

si tu utilises une bd tu peut gérer avec un compteur
sinon tu peux voir avec le nombre de fichiers de sessions
 
et attention au timeout

n°1512701
Surfoo
Ça va ? ok.
Posté le 09-02-2007 à 16:30:23  profilanswer
 

Bah tu passes par la base de données :

 

- Tu rajoutes un champ "online" et "temps" dans la table des users.
- Dans "online" ça sera 0 pour non connecté et 1 pour connecté
- Dans "temps" ça sera un timestamp qui sera rafraichi à chaque page.

 

Car si l'utilisateur part, il faut pouvoir le "déconnecter" dans la base pour que le prochain utilisateur puisse se connecter au bout de 5 min d'inactivité par exemple.

 

Donc l'internaute part du site et pour le prochain, tu dois prendre le timestamp de la base + 5min (inactivité par exemple) et le comparer avec le timestamp du visiteur. Si timestamp+5min>timestamp visiteur : acces refusé car l'autre est encore en ligne (ou supposé en ligne avec l'inactivité).

 

Voilà.


Message édité par Surfoo le 09-02-2007 à 16:31:20
n°1512703
Moriaben
Posté le 09-02-2007 à 16:31:08  profilanswer
 

non je n'utilise pas de bdd
 
y'a pas moyen de dire au serveur (easyphp en l'occurence) de ne pas accepter de requete start_session() si y'en a déjà une d'ouverte?

n°1512744
soju
One shot !
Posté le 09-02-2007 à 17:18:04  profilanswer
 

Moriaben a écrit :

y'a pas moyen de dire au serveur (easyphp en l'occurence) de ne pas accepter de requete start_session() si y'en a déjà une d'ouverte?

je ne pense pas
 
vu que tu n'utilises pas de bd :
- soit tu fais un compteur dans un fichier
- soit tu comptes le nombre de sessions en cours en regardant dans le dossier des sessions (voir session.save_path dans php.ini)

n°1512754
Moriaben
Posté le 09-02-2007 à 17:22:51  profilanswer
 

le coup du nombre de fichiers dans le dossier tmp ne fonctionne pas pour une raison très simple:
 
si je me connecte (je créé un fichier tmp) et que je quitte le browser sans la fermer la session (logout avec unset et destroy), et bien le fichier précedemment créé n'est pas supprimé (alors qu'il l'est quand je me déconnecte proprement du site)
 
concernant le compteur dans le fichier, je trouve pas ça très propre mais bon c'est ce qu'il y'a de plus simple à priori

n°1512762
soju
One shot !
Posté le 09-02-2007 à 17:27:52  profilanswer
 

Moriaben a écrit :

si je me connecte (je créé un fichier tmp) et que je quitte le browser sans la fermer la session (logout avec unset et destroy), et bien le fichier précedemment créé n'est pas supprimé (alors qu'il l'est quand je me déconnecte proprement du site)

c'est bien pour ça que je parlais de timeout, tu auras le même problème avec fichier compteur vu que tu ne peux pas forcer tes utilisateurs à se déconnecter proprement

n°1512776
Moriaben
Posté le 09-02-2007 à 17:40:03  profilanswer
 

tout à fait vrai :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  ouvrir une seule et unique session?

 

Sujets relatifs
ouvrir un fichier juste en le n'omantIdentifiant unique de machine
probleme de session registerPage avec cadre non rechargé d'une page à l'autre
$GLOBALS et sessionouvrir nouvelle page apres validation formulaire connex
[PHP] Probleme de content type avec IE (mais aussi de session)Cannot send session cache limiter (erreur php help)
[RESOLU]ouvrir un répertoire sélectionné et lister[VBA-W] Mettre le texte sur une seule ligne
Plus de sujets relatifs à : ouvrir une seule et unique session?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR