Comment puis-je faire pour savoir qui est connecté à mon site pour pouvoir l'afficher ensuite?
Plusieurs sites font cela et j'aimerais bien savoir l'astuce.
Quelque chose du genre:
Joueurs connectés:
Bidule
Machinchouette
Trucmuche
Comment puis-je faire pour savoir qui est connecté à mon site pour pouvoir l'afficher ensuite?
Plusieurs sites font cela et j'aimerais bien savoir l'astuce.
Quelque chose du genre:
Joueurs connectés:
Bidule
Machinchouette
Trucmuche
Le mieu pour ca c'est de faire une table sur ta bdd dans laquelle tu crée un champ ip timestamp et Nom.
Lorsque'un utilisateur se connecte tu met le nom dans Non, et apres si l'utilisateur na pas rafraichi de page pendant un certain temps tu efface la ligne de la BDD.
Je suis assez interressé par sa aussi, pouvez vous me dire comment procédé afin de contrôler si il est connecté ? Il y a une fonction ?
Enfin je ne vois pas trop comment procéder si quelqu'un saurait m'éclairer.
Merci d'avance
Mikiman
Un visiteur arrive, tu rajoutes un enregistrement dans ta table!
Pour affichier le nombre de connectés, tu comptes le nombre d'enregistrements!
Tu effaces tout les enregistrements qui datent de plus de 20 minutes!
Et comment savoir si un utilisateur n'a pas rafraichi sa page depuis 20 min???
Y a aucune technique sûre à 100% dans ce domaine. Tout au mieux, tu peux obtenir un nombre approximatif de visiteurs connectés mais toujours sans certitude absolue.
Le seul moyen de vérifier serait de compter le nombre de sessions ouvertes en comptant le nombre de fichiers sess_.... par ex si session_handler=files et encore car la manière dont les fichiers de sessions sont supprimés varient parfois d'une plateforme à l'autre.
Bref, tu ne peux avoir aucune garantie du nombre de visiteurs réellement connectés.
Travailler avec une base de données est l'usage habituel mais là encore, tu ne peux garantir à 100% qu'il y a "N" utilisateurs connectés car si tu considères qu'après 20 min d'inactivité, l'utilisateur est déconnecté, ça n'engage que ta propre considération, rien ne dit que la personne n'est pas toujours en train de lire une page de ton site. Enfin bon, faut bien mettre des limites
![]()
Ok, Merci beaucoup de vos réponse ^^.
Je vais essayer de trouver une manière plus ou moins correct même si sa ne dit pas forcément exactement ^^.
Merci encore
Bonne journée
Mikiman

Oui cette méthode est bien, perso j'utilise à 5 minutes.
Tu crée une table avec un champ pseudo et timestamp.
Et a chaque fois que le gars charge une page :
Tu rajoute son pseudo et le timestamp actuel si il n'y est pas deja
sinonn tu actualises le stamp
tu supprime les vieux timestamp
Je te jure que c'est fait en 30 minutes.
c'est la methode que je disait ^^Envoyé par Eldacar
En plus a pres tu peut améliorer ta table et envoyer par exemple le titre de la page, come ca tu peut suivre ou vont tes utilisateurs ^^.

OK! Desolé de la répétitionc'est la methode que je disait ^^![]()





Il est également possible d'envoyer régulièrement une requête au serveur pour prouver que le navigateur reste connecté:
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
24
25
26
27
28 <script type="text/javascript"> var Connexion = { iframe : null, init : function() { this.iframe = document.createElement('iframe'); this.iframe.style.position = 'absolute'; this.iframe.style.visibility = 'hidden'; document.body.appendChild(this.iframe); }, sendRequest : function() { this.iframe.src = 'exec.php'; setTimeout('Connection.sendRequest()',60000); } }; Connexion.init(); Connection.sendRequest(); </script>
Explication pour les néophytes en javascript:
Je crées en javascript une balise iframe en définissant un style css pour la cacher aux yeux de l'internaute. Ensuite, j'envoie toutes les minutes une requête par cet iframe. Le fichier php exécuté est exec.php
Quand au code php, il est trivial. Je vous laisse le concevoir selon vos besoins.
Sinon, il existe encore une autre solution basée sur le même principe, mais augmentant la compatibilité car elle ne fait pas appel à javascript:
Dans la page, il suffit de mettre
Et dans la page exec.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <iframe style='position: absolute; visibility: hidden' src='exec.php'></iframe>
La page se rechargera ainsi d'elle même toutes les minutes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php //code php ?> <html> <head> <meta http-equiv="refresh" content="60; URL=exec.php"> </head> <body> </body> </html>
Ces 2 solutions sont théoriques car je n'ai pas pris le temps de les tester. Elles devraient marcher.
Pour la derniere solution j'aurais tendence à utiliser ajax à la place du iframe même si le resultat reste le même mais l'iframe, même invisible peut finir par agacer l'internaute car si ce dernier est sur IE il va entendre le bruit du clique tous les x temps sans vraiment savoir pourquoi et donner l'impression que quelque chose se fait dans son dos![]()





Je suis parfaitement d'accord. J'utilise personnelement Ajax pour communiquer avec le serveur, mais il se pose le dilèmne:
- compatibilité, mais code non aux normes du w3c
- code aux normes, mais risque de non compatibilité avec les anciens navigateurs ou ceux qui ont désactivé javascript
La réponse dépends entièrement du choix du développeur. Elle n'est pas facile.
Effectivement.
La solution la plus simple et dès qu'il y a un internaute connecté un script regarde ceux qui sont connecté c'est à dire entre NOW()-x mn. Bien évidement x est mise à jour à changement de page d'un internautes
Partager