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

PHP & Base de données Discussion :

lister les sessions ouvertes [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 295
    Par défaut lister les sessions ouvertes
    Bonjour. Je gère un serveur unix qui utilise apache comme serveur web. Celui-ci héberge un site. Afin de faire la maintenance de ce site, je voudrais vérifier si aucun utilisateur n'est logué sur ce site (session_start). Ce site ouvre une session à chaque fois que les utilisateurs se loguent.
    qu'est-ce que php à précu pour lister toutes les sessions actives ?
    J'imagine qu'on peut aussi faire ce type de service par du code php mais j'aurais préféré utiliser ce que php a déjà prévu.
    Merci d'avance et à bientôt.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il n'y a rien en PHP pour lister les sessions actives.
    L'existence d'un fichier de session ne veut d'ailleurs pas dire que la session est active ou même encore valide.

    Si tu veux une gestion très fine, tu peux faire ton propre gestionnaire de session.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 295
    Par défaut
    Bonjour sabotage,
    Merci pour ta réponse.
    Je ne sais si tu peux me répondre à cette question, mais je tente quand même.
    N'y a t'il pas, au niveau du serveur Unix et en ligne de commande, une commande (en effet) qui permet de voir quels sont les sessions ouvertes ?
    Si pas, je ferai comme tu as dit, par programmation.
    Merci d'avance. Ciao

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour bien te répondre il faudrait savoir pourquoi tu veux faire ça.

    Sinon une session n'est pas "ouverte", une session est juste un fichier texte sur le serveur avec les données dedans.
    Techniquement je dirais qu'en listant les fichiers ayant une date de modification inférieure à la durée de vie des sessions, tu aurais la liste des sessions valides.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 295
    Par défaut
    Je voudrais savoir si aucun n'utilisateur n'est logué avant de faire la maintenance du site afin d'éviter de mettre fin brutalement à une connection. Pour entrer dans le site, le user doit se loguer se qui ouvre un session (session_start)
    Ciao

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je pense que c'est jouable tel que je te l'ai décrit.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Je voudrais savoir si aucun n'utilisateur n'est logué avant de faire la maintenance du site afin d'éviter de mettre fin brutalement à une connection. Pour entrer dans le site, le user doit se loguer se qui ouvre un session (session_start)
    Ciao
    Le problème, c'est que l'activité ou la non activité d'un utilisateur ne se trouve pas coté serveur, pour la simple raison que personne se trouve sur ton serveur.

    En faite, le serveur ne fait que renvoyer un contenu quand quelqu'un en fait une demande.
    Donc c'est juste au moment ou la personne fait la demande, ou plus exactement, quand ton serveur reçois cette demande qu'on sait qu'il y a eu une activité.
    C'est ce que représente la session, ça correspond à la date de création de ce fichier.
    Mais après, que ce passe t-il ?
    Et bien coté serveur, rien, malheureusement, car il faut à chaque fois attendre une nouvelle demande.

    Après, vient une autre donnée qui est définie dans le php.ini, un délai d'expiration, qui par défaut vaut 24 minutes.

    Donc coté serveur, il y a 2 choses connues, c'est tout, et c'est pas grand chose.
    A chacun de définir ce que représente une activité ou non activité avec ça.
    On peu juste dire que le délai d'expiration est un temps maxi qu'on accorde à un utilisateur pour faire une nouvelle demande pour conserver ces informations, au-delà c'est perdue.

    Pour ton problème de maintenance, ça risque d'être compliqué, car en admettant que tu détecte une activité (ou tu considère qu'il y en a une), et bien que faire ?
    Relancer l'opération de maintenance plus tard ? Mais dans combien de temps ?

    A part le faire dans des jours ou/et heures où on sait qu'il y a aucun ou peu de trafique pour causer le moins de désagrément, sinon je vois pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupération de toutes les sessions ouvertes
    Par don'de dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/04/2007, 13h29
  2. Afficher les sessions ouvertes
    Par Mvu dans le forum ASP
    Réponses: 1
    Dernier message: 14/09/2006, 17h01
  3. Connaitre les sessions ouverte.
    Par djalilk dans le forum Langage
    Réponses: 2
    Dernier message: 14/09/2006, 12h41
  4. Accéder à TOUTES les sessions ouvertes
    Par TheMoutch dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/09/2006, 23h42
  5. PB Réseau sur les sessions ouvertes ?
    Par nico___23 dans le forum Développement
    Réponses: 1
    Dernier message: 07/01/2005, 09h50

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