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 :

Qui est actuellement connecté à mon site


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut Qui est actuellement connecté à mon site
    Bonjour,

    Je suis debutant en php et j'aurai une petit question

    Voila Jaimerai recuperer et afficher les pseudos des personnes connecter a mon site
    j ai une table "user" avec pseudo et pass et j'arrive a me connecter a mon site avec une session "pseudo"
    Mais j aimerai que chaque personne connecter vois les autres personnes egalement connecter .

    J'ai tester plusieur chose ,utiliser le timestamp unix avec un delai de deconection et des que celui ci depasse un delai le client est deconecter.
    et je n'affiche pas les pseudos dont les timestamp()<xx sec

    mais je n aime pas trop cette façon de faire,est il possible de recuperer l'evenement "quitter la page avec la croix"? et de rajouter un champs boulean "connecter" qui passerai a off si la personne quitte la page?
    ou je n afficherai que les personnes a on

    ou si il y a plus simple je suis preneur =)

    J'espere avoir été claire (pas d'exemple ,tout est en local chez moi et je suis pas chez moi :/)
    Merci d'avance de vos reponse

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Ca revient souvent comme sujet, et malheureusement pour toi je crois que la solution que tu as adoptée est la seule possible, pas possible de savoir quand l'utilisateur clique sur la croix, donc stockage de l'heure de dernière activité en base et considérer que passé un certain délai l'utilisateur est déconnecté.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut
    Mince

    Donc le soucis maintenant serai de remettre a jour le timestamp pour chaque evenement de l'utilisateur

    ca fait bien gonfler le code tous ca :/

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    Je me souviens m'être posé la quesiton il y a déjà un moment lors du développement d'un module de statistique de visites. Je voulais récupérer la page de sortie et surtout l'heure de sortie du visiteur.
    J'avais finalement opté pour cette solution également. La page de sortie, c'est simple : la dernière entrée dans la abse pour ce visiteur. L'heure de sortie, je comptais un truc du genre 5 minutes sur la dernière page... Mais finalement, ça n'est qu'approximatif.

    J'avais cependant imaginer une petite parade. Je pensais qu'avec un évènement javascript onUnload, on pourriat déclencher l'ouverture d'une toute petite pop-up qui s'autoferme après éxécution d'un script. Ce script serait là juste pour enregsitrer la page de sortie. Limite de mon système : A chaque changement de page (même sans sortir du site) on a un onUnload. Je ne voulias donc pas ouvrir une pop-up sans arrêt.
    Mais tout ça, c'était des années avant que l'on commence à parler d'Ajax. Maintenant, avec Ajax, je pense qu'il y a une piste à creuser de ce côté... non ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut
    pas bete
    on pourai peux etre juste recup avec $_GET l id de la page qu'on ajoute a un champs idpage dans la table "user" et qui se met a jour a changement de page (et on met a jour aussi le timestamp).
    comme ca on peux voir qui est connecter et sur quelle page

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut
    voila j'utilise le timestamp
    escusez de l'aspect prehistorique du code je debute :p
    une page testconnection.php que j'inclus dans mon index.php
    a chaque evenement de l'utilisateur je remet a jour le timestamp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?
     
    mysql_connect("$host", "$user", "$passwd");
    mysql_select_db("$bdd");
     
    	$pseudo=$_SESSION['pseudo'];//recup de la session en cour
    	$timestamp_5min = time() - (60 * 5); //nombre de secondes écoulées en 5 minutes
    	$recup_timestamp=mysql_query("SELECT timestamp FROM user WHERE user.pseudo='$pseudo'");//recup du timestamp dans la table pour l'utilisateur qui est connecté
    	$exe_recup_timestamp = mysql_fetch_array($recup_timestamp);
    	$timestamp_pseudo=$exe_recup_timestamp['timestamp'];
                 $offline="off";
    	$online="on";
     
    if ($timestamp_pseudo<$timestamp_5min)
    {
    mysql_query("UPDATE user SET online='$offline' WHERE user.pseudo='$pseudo'")or die ('Erreur : '.mysql_error());;
    //test
    echo "vous etes deconecter";
    }
    else
    {
    mysql_query("UPDATE user SET online='$online' WHERE user.pseudo='$pseudo'")or die ('Erreur : '.mysql_error());;
    }
    ca a l'air de fonctionner

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

Discussions similaires

  1. [PowerShell] Savoir quel ordinateur d'un domaine est actuelement connecté
    Par CristofMartins dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 23/10/2012, 15h00
  2. Est ce que Dreamweaver est ideal pour mon site ?
    Par Esmax666 dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 21/12/2011, 12h43
  3. Impossible de me connecter à mon site intranet
    Par foryou dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/09/2008, 12h20
  4. Insérer un lien vers un swf qui est sur un autre site
    Par sebinator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/02/2008, 09h56
  5. Avoir l'heure actuelle sur mon site
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/04/2006, 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