Compteur de visiteurs connectés en temps reel !!!

1/5 (9 avis)

Snippet vu 11 962 fois - Téléchargée 29 fois

Contenu du snippet

Et oui encore un compteur de visiteurs connectés. j'ai cherché longtemps une sources qui me plaira c'est que ya de tout avec ou sans base de données ... le gros problème de tout c compteurs c qu'il fonctionnait en général avec une tempo allant de 3 à 5 min pour une visite moyenne avec une récupération d'ip bref je ne vous apprends rien.

Le mien aujourd'hui à le gros avantage d'être en temps réel et oui du jamais vu (enfin j'ai pas trouvé jusqu'à maintenant) qui fonctionne sans bas de donnée. Maintenant on ne plaisante plus Voici le code:

C'est mon premier script alors allez-y critiquez !

Source / Exemple :


tout d'abord créer deux fichiers :

- visit.txt
- visit.php

______fichier visit.txt______ // ce fichier contient le nombre de visiteur

0

______fichier visit.php_____ // script php qui met à jour le fichier visit.txt

<? 
// récupération de la variable $action
$action = $_GET['action'];
//ouverture du fichier visit.txt en lecture écriture
$f = fopen('visit.txt', 'r+');
// lecture du fichier et récupération du nombre de connecté dans $visit
$visit = fgets($f);
// ajoute ou supprime un connecté selon la demande
if($action==0) { $visit = $visit - 1; }
if($action==1) { $visit = $visit + 1; }
// retour au début du fichier
fseek($f,0);
// écris le nouveau nombre de connecté
fputs($f, $visit);
// ferme le fichier
fclose($f);
// ferme le popup ouvert précédemment
echo '<script language="javascript1.2">window.close()</script>';
?>

__________Dans votre page____________

<head>
...
<script language="JavaScript1.2">
<!-- 
//fonction qui ouvre un popup en appelant le script php 
//avec un argument différent selon l'ouverture ou
//la fermeture de la page cette action est lancer depuis 
// la balise body voir plus bas.

function visit(action)
{
if (action==0) { pop = window.open("visit.php?action=0","visit0","menubar=no, status=no, scrollbars=no, menubar=no, width=1, height=1"); }
if (action==1) { pop = window.open("visit.php?action=1","visit1","menubar=no, status=no, scrollbars=no, menubar=no, width=1, height=1"); }
pop.blur();
}
//-->
</script>
...
</head>

<body onload="visit(1)" onunload="visit(0)">
...

<?
//récupération du nombre de connectés :
function getvisit()
{
// ouverture du fichier visit.txt en mode lecture
$f = fopen('visit.txt', 'r');
// lecture du fichier
$visit = fgets($f);
// fermeture du fichier
fclose($f);
// retourne le nombre de connecter
return $visit;
}
// affiche le nombre de connecté
echo getvisit().' visiteur(s) connecté(s)'; 
?>

</body>

Conclusion :


et voilà un beau compteur de visiteurs connectés en temps réels (vous avez le principe maintenant en tout cas).

Pour ma part le onload ne s'éxécutant jamais j'ai modifié ceci en :

<body onUnload="visit(0)">
<script language="javascript1.2">visit(1)</script>

ce qui revient au même normalement.

sinon après libre à vous de mettre le script dans un fichier visit.js par exemple ou autre...

LE SEUL DESAGREMENT de ce système est le popup que l'on voit a peine aparaitre et disparaitre ausitôt.

A voir également

Ajouter un commentaire Commentaires
codelyokon1 Messages postés 1 Date d'inscription samedi 24 octobre 2009 Statut Membre Dernière intervention 25 octobre 2009
25 oct. 2009 à 08:42
SUPER GRACE A TON CODE JA'AI TROUVER MON BONNHEUR
obcstaff Messages postés 147 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 28 janvier 2008
6 déc. 2005 à 23:27
Le code est bien écrit, mais je pense qu'il existe beaucoup plus simple mais si ta source l'est déja bien mais il faut un site avec BD.
En effet il faut pour ton code faire appel a la fonction sur toute les pages si le site en a plusieurs alors qu'avec les SESSION, il y aurait beaucoup moins de code:
-- a l'ouverture de SESSION, nbvisiteur<-nbvisiteur+1 dans la table visite
-- kan unset SESSION, nbvisiteur<-nbvisiteur-1

Bref j'suis dessus, bientot les 2 fonctions seront en ligne

++ et bon courage a tous
XSimpson Messages postés 31 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 7 octobre 2004
25 déc. 2003 à 09:43
Ouvrir une popup ne marche très bien, parce ceux qui ont un popup killer, du style de la barre google, ton script ne marche sauf si on la désactive.
Il faudrai juste un script cgi automatique qui te servirai à appelé les derniers connectés en se servant de leur IP, peut-être que là alors sa marcherai bien.

Je ne m'y connais pas trop en CGI, alors je ne peut pas t'aider, allez ciao
cs_Antidote Messages postés 163 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 mai 2010
21 déc. 2003 à 18:11
dsl koko cété une erreur de frappe un petit oublie. Si in utilise une pseudo frame à la fermeture du navigateur celle sera fermée avec et donc pas de lancement de script. Ce n'est pas idéal je pense.

laraignee je suis en 56k (mais illimité) j'ai pas cette habitude je n'y avait pas penser non plus.

Je cherche une solution pour le moment mais pour l'instant je n'est rien trouvé de formidable.

en tout cas merci à vous
cs_laraignee Messages postés 1 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 21 décembre 2003
21 déc. 2003 à 11:07
Salut Antidote,
Tu devrais prévoir en plus une une tempo comme tu l'explique dans tes commentaires, ainsi tu pourrais gérer les erreurs, car certains utilisateurs se déconnecte de leur fournisseur d'accés avant de fermer leur navigateur.
Souvent pour continuer à lire la page hors connection.
Tout le monde n'as pas encore l'ADSL.
Bon Courage.
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.