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

Langage PHP Discussion :

Une session pour savoir si un utilisateur est connecté


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut Une session pour savoir si un utilisateur est connecté
    Bonjour,

    J'ai un petit site web sur serveur local.

    Je souhaiterais une solution pour savoir si une personne est en ligne.

    Principe de fonctionnement souhaité:
    Mon site ne nécessite pas de connexion, mais je voudrais savoir si une personne est en ligne pour lancer en tache de fond un script php,
    qui interrogerait une base de donnée pour un affichage asynchrone de données sur des graphiques. Le script serais appelé toute les minutes (sleep 10000?).
    Pour une question de portabilité windows/linux et pour faire simple je souhaite pas utilisé cron ou un gestionnaire de tâche.
    Pour une question d'économie de ressources du serveur, je souhaiterais que le rafraichissement asynchrone des données soit stoppé s'il n'y a plus personne en ligne.

    Je voudrais donc savoir s'il existait une variable php qui pourrait me donnée cette information, une session, ou bien les autres possibilités qui s'offre à moi?

    Merci pour votre aide.

    Dudu

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Lancer un script PHP quand un utilisateur navigue, même sans connexion, c'est précisément le fonctionnement ordinaire de l'environnement web.
    Tu lances un cron précisément quand tu veux déclencher un truc sans utilisateur en face.
    Il doit y avoir des trucs qui m'échappent dans ta question.
    Sinon, ben par exemple, récupérer l'adresse IP d'un client web dès qu'il clique quelque part, et le mette sur un fichier log avec l'heure, c'est savoir combien tu en as, et même qui...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $file ="file.txt";
    $fileopen=(fopen("$file",'a'));
    fwrite($fileopen,date("d-m-Y H:i:s").' : '.$_SERVER["REMOTE_ADDR"]);
    fclose($fileopen);
    ?>
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut
    Je cherche pas à savoir qui est sur la page web (car je suis le seul sur mon réseau local).

    Je voudrais qu'un script se lance lorsque j'ouvre la page de mon site web (j'usqu'ici je sais faire).

    => Le script doit tourné en boucle en tache de fond, mais je voudrais que script s'arrête lorsque je sort du site ou plus généralement lorsqu'il n'y a plus personne en ligne...

    Je dois utilisé une session? c'est ma seule solution?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Les sessions PHP permettent de conserver des variables pendant la navigation d'un client, mais elles ne permettent pas de dire formellement si le client est toujours en activité ou non.

    Une solution est d'enregistrer le temps quand l'utilisateur accède à n'importe quel page, par exemple dans une base de données.
    Ton script récurrent va lire ce temps et s'arrêter s'il est plus vieux que 15 minutes par exemple.

    A l'inverse il faut que le script signale son arrêt ou son déroulement quelque part de façon à ce que lorsqu'un client accède à une page, tu saches s'il faut lancer le script ou s'il est déjà en cours.


    Bon tout de même je trouve tout ce fonctionnement peu naturel : ton serveur est là pour servir ; à moins de vouloir économiser de l’énergie, pourquoi vouloir arrêter le script ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut
    oui, c'est une question d'énergie.

    Un simple cookie d'une validité de 15 minutes fera l'affaire alors...

    Merci pour ces infos.

Discussions similaires

  1. Savoir si un utilisateur est connecté
    Par acheda dans le forum Langage
    Réponses: 5
    Dernier message: 30/08/2007, 16h55
  2. [Active Directory] Savoir si un utilisateur est connecté
    Par bl4ckwolf dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 15/08/2006, 16h14
  3. Savoir si l'utilisateur est connecté au Web
    Par Spartan03 dans le forum C++
    Réponses: 14
    Dernier message: 27/07/2006, 21h17
  4. Réponses: 17
    Dernier message: 14/02/2006, 00h21
  5. Fonction pour savoir si un ordi est connecté au reseau
    Par LitteulKevin dans le forum Windows
    Réponses: 17
    Dernier message: 13/09/2004, 14h12

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