Combien de visiteurs sont sur mon site ?

Connaître le nombre de visiteurs sur son site n’est pas une réalisation évidente. Il faut prendre plusieurs éléments en considération :

  • L’ouverture d’une page est réalisée sur un temps très court, inférieur à une seconde. Côté serveur, le script est terminé que la lecture de la page par le visiteur commence. Nous devons donc estimer une durée de lecture pour chaque utilisateur, ici 120 secondes.
  • Comment identifier un seul et même visiteur ? Se fier à l’adresse IP n’est pas une bonne solution dans le cas de NAT où plusieurs utilisateurs sont « vus » avec la même adresse, mais c’est la plus simple. Une meilleure solution est d’utiliser les cookies.
  • Quelle méthode utiliser pour s’implanter dans les pages ? Nous utiliserons quelques lignes de PHP à recopier dans un script. Ceci a pour but d’être plus simple, mais moins souple d’utilisation.
  • Qui comptabiliser ? Nous ne ferons pas de différence dans un premier temps entre visiteur réel et robot.

Même s’il ne s’agit pas de la meilleure version, il s’agit de la plus simple possible, demandant très peu de ressources.

Déclaration de la table MySQL qui sera utilisée pour stocker les visites :

CREATE TABLE nbconnecte (
  id int(10) unsigned NOT NULL auto_increment,
  ip varchar(15) NOT NULL DEFAULT '' ,
  date int(14) NOT NULL DEFAULT '0' ,
  PRIMARY KEY (id),
  KEY id_2 (id),
  UNIQUE id (id)
);

Code à insérer dans votre page :

<?php
//Nb de personnes sur le site
include('connectes.inc');
?>

Contenu du fichier connectes.inc

<?php
 $duree_estimee=120;
 $limite = time() + $duree_estimee;

 mysql_query("DELETE FROM nbconnecte WHERE ip='$REMOTE_ADDR' OR date<".time());
 mysql_query("INSERT INTO nbconnecte (ip,date) VALUES ('".$_SERVER['REMOTE_ADDR']."',$limite)");

 $nbconnectes = mysql_result(mysql_query("SELECT COUNT(*) FROM nbconnecte"), 0);
 echo $nbconnectes;
?>
You can leave a response, or trackback from your own site.

Leave a Reply

Sorry, no posts matched your criteria.