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

  1. #1
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    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
    Points : 3 115
    Points
    3 115
    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é.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    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 habitué
    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
    Points : 130
    Points
    130
    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
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    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
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    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

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2004
    Messages : 151
    Points : 106
    Points
    106
    Par défaut
    Profite en pour cocher "Résolu" alors
    Et puis
    "Vous êtes déconnecté ..."

    (Je sais c'est pas du php mais de l'orthographe mais quand même ...)

  8. #8
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    Et puis
    "Vous êtes déconnecté ..."

    (Je sais c'est pas du php mais de l'orthographe mais quand même ...)
    oui ^^ pas fais gaffe merci



    SUJET RESOLU

  9. #9
    Membre habitué Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 138
    Points
    138
    Par défaut
    Un truc : ton bout de code là, si l'utilisateur ne fait plus rien pendant des plombes, les autres utilisateurs le verront toujours connecté non ?

    Ne faudrait-il pas plutôt faire un test des timestamp en masse à chaque affichage de l'index ?

  10. #10
    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
    Points : 3 115
    Points
    3 115
    Par défaut
    l'idée c'est juste de stocker l'heure de dernière activité du user, et quand il y a besoin de la liste des gens connectés quelque part il suffit de faire une requête récupérant la liste des users dont la dernière activité date de moins de X minutes
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  11. #11
    Membre habitué Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 138
    Points
    138
    Par défaut
    Ok j'avais pas vu ça comme ça effectivement c'est pas mal, et ça va me servir en plus !

  12. #12
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    Bah la ca fonctionne niquel j ai ajouté un petit refresh automatique sur mon index (en excluant les pages de formulaire sinon il met une erreur)

    le hic c'est qu'il faut appeler a chaque evenement une requete qui met a jour le timestamps

  13. #13
    Membre habitué Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 138
    Points
    138
    Par défaut
    Citation Envoyé par deew59
    Bah la ca fonctionne niquel j ai ajouté un petit refresh automatique sur mon index (en excluant les pages de formulaire sinon il met une erreur)

    le hic c'est qu'il faut appeler a chaque evenement une requete qui met a jour le timestamps
    Tu n'as pas un include que tu mets à chaque page ? du genre config.php ? dans ce cas tu pourrais intégrer ton update du timestamp à cette page. Si ce n'est pas le cas de toute façon je te conseille de le faire. C'est un gain de temps considérable d'avoir tous les outils que tu utilises tout le temps dans un include.

  14. #14
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    Bah moi ca facilite la chose pour mon site on se balade avec des formulaires mais c'est vrai que tous mettre les variables sur une page et faire un include fais gagner du temps

+ 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