Logo


Xanetiz > Programmation > Placer des statistiques en PHP sur son site

Top

Placer des statistiques en PHP sur son site

Placer des statistiques en PHP sur son site


4 421 vues

Partager

Dynamiser son site Web

Si vous voulez afficher pour tous vos visiteurs ou simplement pour vous des informations sur votre site, cet article peut vous être utile. Nous allons voir l'affichage du nombre de requêtes SQL, le temps de chargement, le nombre de personnes actuellement sur le site et le nombre de visites du site.

Il faudra utiliser le langage de programmation dynamique PHP ainsi que le SGBD (Système de Gestion de Base de Données) MySQL.

Le nombre de requêtes SQL

La méthode est très simple, il suffit de déclarer une variable $nombreRequete au début de votre page et de l'initialiser à 0, puis de l'incrémenter (augmenter de 1) à chaque fois que vous faites appel à une requête SQL, soit mysql_query dans le cas de MySQL. Ensuite, affichez la variable à la fin de la page.

Le temps de chargement

Nous allons utiliser la fonction PHP microtime() qui retourne le timestamp actuel en microsecondes. Le timestamp correspond au temps écoulé depuis le premier janvier 1970. Il permet de sauvegarder une date. Par exemple, si vous postez un message sur un forum, votre timestamp sera sauvegardé. Il va ensuite permettre d'afficher la date à laquelle le message a été posté.

Le principe est simple : nous allons sauvegarder le timestamp au début de la page et à la fin, et nous allons afficher la différence. Pour ça il suffit de placer ce code tout en haut de votre page :

$microtime = explode(' ', microtime());
$debut = $microtime[0] + $microtime[1];

L'affichage d'un site étant relativement rapide, il est préférable d'utiliser une fonction qui renvoie des microsecondes pour une meilleure précision. Microtime() renvoie les microsecondes et le timestamp séparés par un espace. Il est nécessaire d'ajouter les deux pour avoir la partie décimale.

Placez ensuite à la fin de votre page ceci :

$microtime = explode(' ', microtime());
$fin = $microtime[0] + $microtime[1];

Il suffit maintenant de faire la différence entre $fin et $debut. Pour ça nous allons utiliser la fonction number_format() qui permet de personnaliser l'affichage du nombre. Il faut placer ce morceau de code après les deux premiers. Voilà ce que ça va donner :

$temps = number_format($fin - $debut, 3, ',', '');
echo $temps;

Le premier paramètre est le nombre à afficher, le deuxième est le nombre de chiffres après la virgule (ici 3) et le troisième est le choix du séparateur entre la partie entière et la partie décimale. Nous allons choisir la virgule Smiley. Quant au dernier paramètre, il est inutile dans notre cas.

Le nombre de personnes actuellement sur le site

Il va falloir tout d'abord avoir une table nommée online avec deux champs : IP et temps. Ensuite, il nous faut récupérer l'IP avec la variable $_SERVER['REMOTE_ADDR'] et la convertir en un nombre entier :

$i = explode('.', $_SERVER['REMOTE_ADDR']);
$ip = $i[0] + $i[1] * 256 + $i[2] * 65536;

Nous pouvons maintenant créer la limite en secondes (60 * 5 minutes) :

$limite = time() - 300;

Ainsi, à chaque fois que la page est chargée, nous allons comparer la limite et le timestamp des visiteurs enregistrés dans la table online. Si la limite est supérieur au timestamp d'une ou plusieurs entrées : on considère que le visiteur est partis et on supprime son entrée dans la table.

Si la personne a au contraire cliqué à nouveau sur un lien, son IP est déjà présente dans la base : il faut donc la supprimer pour la réinsérer ensuite. La deuxième requête insère une entrée dans la table et la troisième compte le nombre d'entrées pour afficher le nombre de personnes actuellement sur le site, ce que nous voulons. Cela donne au final :

mysql_query('DELETE FROM online WHERE temps < '.$limite.' OR ip = '.$ip);
mysql_query('INSERT INTO online VALUES('.$ip.', '.time().')');

$r = mysql_query('SELECT COUNT(*) AS nombreConnecte FROM online');
$d = mysql_fetch_array($r);

echo 'Nombre de personnes actuellement sur le site : '.$d['nombreConnecte'];

Le nombre de visites du site

Il y a comme partout plusieurs façons de procéder. Ici, nous allons voir comment compter le nombre approximatif de visites du site. Ce n'est pas le nombre de visiteurs unique. Une même personne peut visiter plusieurs fois le site et donc à chaque fois augmenter le compteur.

Il faut un fichier texte qui va contenir le nombre de visites, et un code PHP à insérer sur la page d'accueil. Placez ce fichier à la racine de votre site. Si le nom est compteur.txt, on aura :

$fichier = fopen('compteur.txt', 'r+');
$pv = fgets($fichier);
$pv++;

fseek($fichier, 0);
fputs($fichier, $pv);
fclose($fichier);

Il est préférable de placer ce code sur l'index de votre site car c'est la seule page qu'un visiteur affichera forcément et théoriquement une seule fois.

Pour résumer

Titre Vu Date
L'essentiel du CSS L'essentiel du CSS 4 102 14/03/10
Les injections SQL Les injections SQL 4 736 11/02/10
Placer un copyright sur ses images en PHP Placer un copyright sur ses images en PHP 2 369 04/04/12
Exécuter un script PHP en ligne de commande Exécuter un script PHP en ligne de commande 3 451 04/04/12
Les pointeurs en C Les pointeurs en C 4 699 13/02/10

StatistiquesNombre d'inscrits : 174
Dernier membre : stiv68
Visiteurs en ligne : 2
Membres en ligne : Aucun

Copyright © 2016 Xanetiz.com - Tous droits réservés

Hebdotop