begin process at 2012 05 27 22:25:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > COMPTEUR DE VISITEURS CONNECTÉS EN TEMPS REEL !!!

COMPTEUR DE VISITEURS CONNECTÉS EN TEMPS REEL !!!


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :20/12/2003 Date de mise à jour :21/12/2003 18:12:54 Vu :8 026

Auteur : Antidote

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

      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

  • 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>
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.


 Sources du même auteur

Source avec Zip GUESTBOOK UN EXEMPLE PARMI D'AUTRES (SANS BDD)

 Sources de la même categorie

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000

Commentaires et avis

Commentaire de Antidote le 20/12/2003 06:24:07

J'oubliait les deux fichier sont à mettre à la racine de votre site

Commentaire de Nocturne le 21/12/2003 02:06:32

Salut Antidote,
Juste une petite remarque concernant Netscape 7.02, onUnload ne marche pas quand tu ferme le navigateur et donc cela fause ton compteur de connectes (hypothese que l'internaute ne continu pas a surfer sur le Web apres la visite de ton site, dans le cas contraire ca marche).
Marche tres bien avec IE.
Fait des testes avec d'autres navigateurs, t aura peut etre des surprises.
Bon courage.

Commentaire de Antidote le 21/12/2003 07:36:35

Merci de cette intelligente remarque j'ai pas du tout penser à la compatibilité en faisant ceci.

Je vais voir ce que je peut  faire seulement je n'est qu IE 6 pour testé. Si quelqu'un utilise des vieille version d'ei de nescape ou mozilla ou autre navigateur si vous essayer ce script faite moi parvenir vos résultats merci !

Commentaire de koko le 21/12/2003 11:03:13

&lt;body onload="visit(1)" onunload="(0)"&gt;
c pas tres logique ca ;)

body onload="visit(1)" onunload="visit(0)"&gt;

je crois que c'est mieux !!!
mais tu pourrais aussi utiliser une frame ! tu l'a mets toute petite et tu fais ouvrir une page dedans lors du onunload !

Commentaire de laraignee le 21/12/2003 11:07:45

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.

Commentaire de Antidote le 21/12/2003 18:11:42

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

Commentaire de XSimpson le 25/12/2003 09:43:36

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

Commentaire de obcstaff le 06/12/2005 23:27:12

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

Commentaire de codelyokon1 le 25/10/2009 08:42:11

SUPER GRACE A TON CODE JA'AI TROUVER MON BONNHEUR

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales