Compteur de visite : créer un compteur pour votre site Web

Les compteurs de visites enregistrent la fréquence de visite pour un site Web et présentent généralement le nombre de visiteurs en bas de la page d’accueil. Alors que la sortie visuelle des données des utilisateurs n’a généralement qu’un but représentatif, de nombreux opérateurs utilisent aussi ces chiffres de fréquentation pour l’analyse Web et la mesure de l’audience du site. Pour cela, la plupart d’entre eux s’appuient sur les possibilités des compteurs de visite intégrées des systèmes de gestion de contenu (CMS) ou bien des kits de construction de site Web (éditeurs de sites modulaires) ou alors achètent un compteur auprès des différents fournisseurs en ligne. Ces solutions utilisent souvent un pixel espion (pixel invisible) ou des applications JavaScript similaires connues de l’analyse des fichiers journaux (fichier log) qui enregistrent en plus du simple nombre de visiteurs, des informations spécifiques à chaque utilisateur. 

Pour ne pas dépendre d’un prestataire de service externe et pour avoir un meilleur contrôle des données, il est aussi possible de créer son propre compteur de visite et de l’exécuter sur votre site Web. Pour cela, il faut juste une base de données ou un fichier texte et des connaissances de base en PHP.

Comment fonctionnent les offres de compteur de visite téléchargeables ?

Le moyen le plus simple pour intégrer un compteur de visite à votre site Internet est sans aucun doute de télécharger un script complet. Les options payantes et gratuites se distinguent principalement par l’étendue de leurs services. Si vous optez pour une offre payante, vous recevrez des statistiques visuellement mieux présentées avec des informations supplémentaires en sus des informations du trafic. Le degré de détail de ces informations dépend du fait que l’enregistrement des activités des visiteurs se fait exclusivement du côté serveur ou côte client. Dans les deux cas, les paramètres de base suivants sont toutefois enregistrés de manière standard :

  • Heure d’accès du visiteur

  • Adresse IP du visiteur

  • Client du visiteur

  • Source URL

En fonction de la configuration, le serveur peut attribuer un identifiant unique (cookie de session) à chaque visiteur lors de son premier accès. Ainsi, les statistiques du compteur de visite peuvent être utilisées pour prendre en compte si c’est la première fois qu’un utilisateur visite la page ou non. Avec l’aide de JavaScript ou d’Abobe Flash côté client, vous pouvez encore augmenter le gain d’information. Par exemple, le tracking révèle le système d’exploitation et les extensions de navigateur utilisés par le visiteur ou encore la résolution d’écran définie. Ces dernières informations peuvent, par exemple, jouer un rôle décisif dans l’optimisation de sites Web pour les appareils mobiles.

Pour la plupart des fournisseurs, vous pouvez choisir entre différentes apparences (design) et tailles pour le compteur de visite qui sera affiché par la suite. Après la sélection de la taille et du design, vous pouvez générer alors un code HTML en cliquant sur l’outil approprié. Ce Snippet est alors simplement placé à l’endroit désiré sur votre sur votre site Web pour activer le suivi des visiteurs.

Créer son propre compteur de visite : tutoriel

Si vous souhaitez créer votre compteur de visite pour un site Web, il est tout d’abord nécessaire de créer les structures appropriées. Par exemple, les accès enregistrés doivent d’abord être sauvegardés. C’est la seule façon pour le compteur Web d’afficher ultérieurement l’état actuel et de fournir des statistiques significatives. Pour les sites plus petits, il suffit d’un simple fichier texte que vous devez placer sur votre serveur et que vous spécifiez dans le script comme l’emplacement. Cependant, plus votre projet Web et plus le trafic moyen est important, plus vous devriez recourir à l’utilisation d’une base de données comme MySQL pour pouvoir stocker vos informations. Avant d’entrer précisément dans le script proprement dit, la section suivante traite de la configuration de la base de données correspondante.

Configuration de la base de données MySQL pour les compteurs de visite

La liaison à une base de données est généralement associée à un plus grand nombre de requêtes et est donc plus complexe que la récupération des informations à partir d’un simple fichier texte. Il est donc utile de vérifier à l’avance si l’utilisation de MySQL par exemple vaut la peine au regard de votre projet ou si au contraire cela risque de le ralentir inutilement. Selon les informations que vous souhaitez enregistrer et exploiter avec votre propre compteur de visite, vous devez créer une table avec un nombre correspondant de zones. Quatre champs ou quatre types d’informations présentent un intérêt particulier.

  • Id : dans la première place de la table créée, il est conseillé d’y insérer le champ « id », cela afin de renforcer la clarté et la facilité de traitement de données enregistrées (par exemple, si les entrées doivent être triées). L’utilisation de ce champ est recommandée mais pas obligatoire. Afin de s’assurer que la base de données est numérotée automatiquement de manière consécutive et que chaque numéro ne soit attribué qu’une seule fois, vous pouvez spécifier les paramètres AUTO_INCREMENT et PRIMARY KEY.

  • access_page : la colonne « access_page » est dans tous les cas nécessaire. Elle est utile pour le titre du site dans lequel le compteur de visite est intégré. Vous pouvez aussi utiliser les paramètres NOT NULL et UNIQUE pour éviter la création de doublons. Et VARCHAR ou TEXT pour le type de données dans ce champ.

  • access_counter : le compteur de visite des pages HTML proprement dit se trouve sous le champ INTEGER « access_counter ». À chaque accès à la « access_page » en question, la valeur augmente alors automatiquement de 1.

  • access_date : même si l’horodatage de l’accès à une page ne doit pas nécessairement être sauvegardé dans la base de données, c’est généralement une des premières valeurs collectée par un compteur de visite. En utilisant le type de donnée TIMESTAMP y compris l’attribut CURRENT_TIMESTAMP, vous obtenez les entrées actuelles qui contiennent à la fois la date et l’heure exacte. Si vous spécifiez aussi la règle ON UPDATE CURRENT_TIMESTAMP, la base de données saisit automatiquement l’horodatage sans qu’aucune autre programmation ne soit alors nécessaire.

Création de la fonction PHP du compteur de visite.

Le langage de script PHP est idéal pour transférer les données des visiteurs vers la base de données et lire ensuite les données nécessaires pour le compteur. Pour cela, le script correspondant doit contenir une fonction qui exécute les trois tâches suivantes :

  1. il doit pouvoir se connecter à la base de données et l’ouvrir.

  2. Il doit vérifier la table pour voir si un enregistrement particulier existe déjà, puis augmenter son compteur de 1 ou créer un nouvel enregistrement avec la valeur 1.

  3. Il doit restituer la valeur actuelle du compteur de visite afin qu’elle puisse être présentée en conséquence sur la page d’accueil.

Étant donné que le script complet est assez complexe, les paragraphes suivants traitent séparément les différentes sous-étapes de la fonction, qui est dans cet exemple appelée « visiteur ».

Le code PHP de compteur de visite débute par les paramètres nécessaires à l’initialisation de la base de données, serveur et propriétaire de la base de données, son mot de passe et nom d’utilisateur ainsi que l’orthographe correcte de la table et les champs obligatoires (comme access_page). Il est important de saisir les données correctement afin que la connexion à la base de données puisse être ultérieurement établie.

<?php
function visiteur($record) {
  $db_host = "localhost";
  $db_username = "nom d‘utilisateur"; 
  $db_password = "mot de passe";
  $db_name = "nom de la base de données";
  $db_table = "nom du tableau";
  $counter_page = "access_page";
  $counter_field = "access_counter";

L’étape suivante consiste à ouvrir la base de données ou alors à émettre un message d’erreur en cas d’erreur de connexion :

$db = mysqli_connect($db_host, $db_username, $db_password, $db_name) or ("Host non disponible");
$db = mysql_select_db ($db_name, $link) or ("base de données non disponible");

Ensuite, le script PHP doit être prolongé avec les lignes correspondantes pour remplir la base de données. L’instruction « INSERT…ON DUPLICATE KEY UPDATE » est cruciale, qui en combinaison avec l’incrément intégré de la valeur de champ par 1, garantit la mise à jour du compteur comme désiré si un enregistrement de données existe déjà :

$sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1"; 
mysqli_query($db, $sql_call) ou ("erreur d‘insertion");

Cela signifie que la fonction remplit déjà deux des trois tâches définies : elle assure la connexion à la base de données ainsi que la création ultérieure des enregistrements de données et la mise à jour de ceux existants. Cependant, comme le script a une troisième tâche et qu’il est censé transmettre l’état actuel du compteur de visite au site, vous devez maintenant insérer une demande de base de données correspondante (mysql_query) et définir la sortie numérique du résultat (mysql_fetch_assoc). Dans la dernière étape, la fonction doit fermer la base de données et retourner le résultat par return, donc la dernière partie de la fonction est comme suit :

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or ("SQL-demande refusée");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];

mysqli_close($db);
return $x;
  }
?>

A quoi ressemble un script PHP complet ?

Nous avons expliqué les différentes parties de la fonction PHP dans les sections précédentes, à présent nous vous présentons ici le script complet avec lequel vous pouvez ajouter gratuitement un compteur de visite à la page d’accueil de votre site Web.

<?php
function visiteur($record) {
  $db_host = "localhost";
  $db_username = "nom d‘utilisateur"; 
  $db_password = "mot de passe";
  $db_name = "nom de la base de données";
  $db_table = "nom de table";
  $counter_page = "access_page";
  $counter_field = "access_counter";

  $db = mysqli_connect ($db_host, $db_username, $db_password, $db_name) or ("Host ou base données non disponible");

  $sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1"; 
  mysqli_query($db, $sql_call) or die("erreur d‘insertion");

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or ("SQL-demande refusée");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];

mysqli_close($db);
return $x;
  }
?>

Intégration du script dans les documents HTML

Si vous souhaitez intégrer votre propre compteur de visite PHP sur une page Web, il vous suffit d’apporter quelques modifications mineures au document HTML correspondant. Le changement le plus important est le fait d’échanger l’extension existante .html par l’extension .php. Vous devez aussi attribuer un nom de page significatif à la variable PHP $page_name dans l’en-tête de la page :

<?php
  $page_name = "nom de page individuel";
?>

Vous pouvez aussi utiliser la fonction PHP echo pour créer le nom de page sélectionné, qui sera ensuite ajouté au champ access_page de la base de données, le titre de la page :

<title><?php echo $page_name; ?></title>

Pour l’intégration du script compteur de visite, appelé ici à titre d‘exemple webcounter.php, utilisez la commander PHP include à la position désirée du site Web. Dans la même étape, passez le contenu de la variable $page_name à la fonction « visiteur() » :

<?php
include "webcounter.php";
$nombre_visiteurs = visiteur($page_name);
?>

Dès que le code est inclus dans la page, votre script PHP entre alors action : si le titre de la page (le contenu de $page_name) n’est pas encore disponible dans la table de la base de données, il s’assure qu’un enregistrement de données correspondant soit créé. Le champ access_counter assume la valeur 1 et la fonction transmet au site Web qu’un accès a bien eu lieu. Si une entrée correspondante existe déjà, le compteur dans la base de données n’est augmenté que de 1.

Présentation du nombre de visiteurs sur la page d‘accueil

Après avoir créé le compteur de visite et dès qu’il a commencé à enregistrer les accès sur votre site Web, vous pouvez aussi afficher la valeur actuelle du compteur directement sur votre site Internet. La façon la plus simple d’y parvenir est, par exemple, un message qui s’affiche automatiquement dans le pied de page de la page d’accueil. Il est alors nécessaire d’avoir un pied de page. Utilisez la commande echo pour ajouter la valeur courante de la variable $nombre_visiteurs au texte :

< footer>
  <p>
<?php
    echo "vous êtes le ", $nombre_visiteurs, ". visiteur sur ce site !";
    ?>
</p>
</footer>