Accueil > > > MESVISITEURS
MESVISITEURS
Information sur la source
Description
Voici un script simple qui permet de connaître les visiteurs de mon site web. Il n'utilise pas de base de données ni aucun cookie. Pour chaque visiteur on enregistre son adresse IP, la date de sa première visite, la date de sa dernière visite et le nombre de ses visites. On fait l'hypothèse que deux adresses IP différentes corespondent à deux visiteurs différents. On décide qu'un autre visiteur venu moins d'une heure avant le visiteur actuel est un visiteur connecté simultanément. Et quand le visiteur fait une nouvelle visite à moins d'une heure après sa dernière visite celle-ci n'est pas comptée comme une viste supplémentaire. Toutes ces suppositions sont arbitraires et quand elles ne sont pas respectées les résulats sont biaisés mais restent utilisables. Pour installer le logiciel on met dans le dossier de la page d'accueil le contenu du zip ci-joint, sauf bien sûr les fichiers index.html et exemple.html qui servent à montrer comment activer le script visites.php. Les fichiers statistiques.php et visiteurs.php permettent d'afficher les données des visites effectuées. Ce logiciel convient pour un site web simple et visité modestement.
Source
- <?
- function getUserIP() {
- if($_SERVER) {
- if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
- elseif(isset($_SERVER['HTTP_CLIENT_IP'])) $ip = $_SERVER['HTTP_CLIENT_IP'];
- else $ip = $_SERVER['REMOTE_ADDR'];
- }
- else {
- if(getenv('HTTP_X_FORWARDED_FOR')) $ip = getenv('HTTP_X_FORWARDED_FOR');
- elseif(getenv('HTTP_CLIENT_IP')) $ip = getenv('HTTP_CLIENT_IP');
- else $ip = getenv('REMOTE_ADDR');
- }
- return ($ip);
- }
- $now=time();
- $dossier="visites";
- $visiteur=getUserIP(); // adresse IP du visiteur actuel
- $new="oui";
- $handle=opendir($dossier);
- while ($tmp = readdir($handle)) {
- if($tmp == "$visiteur") { // si le visiteur actuel est déjà venu
- $new="non";
- $fichier="$dossier/$visiteur";
- $fp=fopen("$fichier","r");
- $buf = fgets($fp,40);
- fclose($fp);
- list($nb,$vis1,$visz)=explode('|',$buf);
- if(($now-$visz)>3600) { $nb=$nb+1; } // si c'est une nouvelle visite
- $fp=fopen("$fichier","w");
- fputs($fp,"$nb|$vis1|$now"); // on met à jour son fichier
- fclose($fp);
- }
- }
- if($new == "oui") { // si l'adresse IP du visiteur n'a pas été vue on crée son fichier
- $nb=1;
- $fichier="$dossier/$visiteur";
- $fp=fopen("$fichier","w");
- fputs($fp,"$nb|$now|$now");
- fclose($fp);
- }
- $nbs=0; // nombre de visiteurs actuels connectés "simultanément" ( dans la même heure )
- $handle=opendir($dossier);
- while ($tmp = readdir($handle)) {
- if($tmp!="." && $tmp!=".." && $tmp!="index.html" && $tmp!="maximum") {
- $fichier="$dossier/$tmp";
- $fp=fopen("$fichier","r");
- $buf = fgets($fp,40);
- fclose($fp);
- list($nb,$vis1,$visz)=explode('|',$buf);
- if(($now-$visz)<3600) { $nbs=$nbs+1; } // on a trouvé un visiteur de la même heure
- }
- }
- $fichier="$dossier/maximum";
- $fp=fopen("$fichier","r");
- $buf = fgets($fp,40);
- fclose($fp);
- list($nbx,$visx)=explode('|',$buf); // nbx : nombre maximum de visiteurs "simultanés"
- if($nbs > $nbx) {
- $fp=fopen("$fichier","w");
- fputs($fp,"$nbs|$now"); // mise à jour du maximum de visiteurs "simultanés"
- fclose($fp);
- }
- ?>
<?
function getUserIP() {
if($_SERVER) {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif(isset($_SERVER['HTTP_CLIENT_IP'])) $ip = $_SERVER['HTTP_CLIENT_IP'];
else $ip = $_SERVER['REMOTE_ADDR'];
}
else {
if(getenv('HTTP_X_FORWARDED_FOR')) $ip = getenv('HTTP_X_FORWARDED_FOR');
elseif(getenv('HTTP_CLIENT_IP')) $ip = getenv('HTTP_CLIENT_IP');
else $ip = getenv('REMOTE_ADDR');
}
return ($ip);
}
$now=time();
$dossier="visites";
$visiteur=getUserIP(); // adresse IP du visiteur actuel
$new="oui";
$handle=opendir($dossier);
while ($tmp = readdir($handle)) {
if($tmp == "$visiteur") { // si le visiteur actuel est déjà venu
$new="non";
$fichier="$dossier/$visiteur";
$fp=fopen("$fichier","r");
$buf = fgets($fp,40);
fclose($fp);
list($nb,$vis1,$visz)=explode('|',$buf);
if(($now-$visz)>3600) { $nb=$nb+1; } // si c'est une nouvelle visite
$fp=fopen("$fichier","w");
fputs($fp,"$nb|$vis1|$now"); // on met à jour son fichier
fclose($fp);
}
}
if($new == "oui") { // si l'adresse IP du visiteur n'a pas été vue on crée son fichier
$nb=1;
$fichier="$dossier/$visiteur";
$fp=fopen("$fichier","w");
fputs($fp,"$nb|$now|$now");
fclose($fp);
}
$nbs=0; // nombre de visiteurs actuels connectés "simultanément" ( dans la même heure )
$handle=opendir($dossier);
while ($tmp = readdir($handle)) {
if($tmp!="." && $tmp!=".." && $tmp!="index.html" && $tmp!="maximum") {
$fichier="$dossier/$tmp";
$fp=fopen("$fichier","r");
$buf = fgets($fp,40);
fclose($fp);
list($nb,$vis1,$visz)=explode('|',$buf);
if(($now-$visz)<3600) { $nbs=$nbs+1; } // on a trouvé un visiteur de la même heure
}
}
$fichier="$dossier/maximum";
$fp=fopen("$fichier","r");
$buf = fgets($fp,40);
fclose($fp);
list($nbx,$visx)=explode('|',$buf); // nbx : nombre maximum de visiteurs "simultanés"
if($nbs > $nbx) {
$fp=fopen("$fichier","w");
fputs($fp,"$nbs|$now"); // mise à jour du maximum de visiteurs "simultanés"
fclose($fp);
}
?>
Conclusion
Le fichier visites.php est commenté. L'installation est très simple. Et pour l'activer il suffit d'ajouter dans le html des pages visitées : <script language="javascript" src="visites.php"></script> On peut facilement faire quelques améliorations et/ou variantes. Vos remarques sont les bienvenues.
Historique
- 10 juin 2010 22:10:38 :
- Mise en place de l'amélioration de Morphinof
- 10 juin 2010 22:20:54 :
- Terminer la première mise à jour qui était incomplète.
- 19 mai 2012 14:10:29 :
- Mise à jour selon les commentaires de Olafgrossebaffe et Georges26
- 19 mai 2012 14:46:41 :
- pour corriger une erreur de parenthèses
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
FERank - Mesure d'audience professionnelle [ par amo 2a ]
Bonjour, Etant en phase finale de développement je me permet de vous présenter notre outils d'analyse statistique. (Si je ne me trouve pas dans la bo
enregistrer l'IP des visiteurs de son site [ par jeanclod13 ]
Bonjour à tous, J’ai créé un site sur ma copropriété avec une zone réservée aux copropriétaires pour y accéder pour ceux qui le souhaitent chacun a u
Informations de vos visiteurs par email [ par bigrat ]
[b]Recevoir les informations des personnes qui passe sur votre site web.[/b] [code=php]<? $lang = $_SERVER["HTTP_ACCEPT_LANGUAGE"]; $user = $_SERVER["
Rien ne se modifie dans mon fichier... Pourquoi ? [ par jytest ]
Bonjour, Débutant en php, j'ai un souci avec ce code qui a l'air de fonctionner... sauf qu'il ne fonctionne pas... rien ne change dans le fichier 'vi
Les caractères de fin de records des fichiers [ par jytest ]
Bonsoir, J'ai un code php qui me donne des soucis. Dans le fichier d'abord lu "visites.txt" : pour le 1er : il y a 6 chiffres (prochain libre dans le
statistique de frequentation [ par startech ]
salut je veux un algorithme en ( php/mysql) qui fait des statistiques de frequentation sur mon site ( Visites, visiteurs et pages vueus , Moyenne de p
problème affichage du nombre de visiteurs [ par fredoann ]
Bonjour ,j'ai réalisé un site que j'ai installé sur un PC qui fait office de serveur.Sur ce pc tout fonctionne,et particulièrement le nombre de visite
Etablir des statistiques par visiteur ? [ par cdoliv ]
Bonjour, J'ai besoin de votre aide, car je voudrais faire (sur mon site spip) des statistiques, mais PAR VISITEUR !!! J'explique, chacun se connecte
compter le nombre de visiteurs [ par esteller ]
Bonjour à tous. je n'arrive pas à compter le nombre total de visiteurs de mon site. voici le code de ma page connectes.php: [code=php] <?php $retour
Classement visiteurs par clef [ par audiogenic ]
Bonjour, Je vais vous expliquer mon problème. Alors je construis un site de statistiques de sites distant pour webmasters(mes clients), à l'intérieur
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|