À propos des cookies

Ce site utilise des cookies afin d’améliorer votre expérience et optimiser votre site et services.

En cliquant sur ”J’accepte”, vous acceptez l’utilisation des cookies. Vous pourrez toujours les désactiver ultérieurement. Si vous supprimez ou désactivez nos cookies, vous pourriez rencontrer des interruptions ou des problèmes d’accès au site.


TCTronCommun
Image
Cassia
23/07/2018

96
Qualité :
Note : 0 / 10
Avis : 1

Se connecter
Licence : CC-Zero | Zero

Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons
En savoir plus

24 minutes de lecture (6626 mots).

Afin d'optimiser un maximum vos efforts, pourquoi ne pas faire des statistiques ?

Par statistiques, j'entends à la fois vos performances (visiteurs connectés, nombre maximum de visiteurs connectés, pages visitées) mais aussi l'impact qu'a votre publicité sur les utilisateurs (provenance, intérêt). Celles-ci vont vous permettre de pouvoir gérer vous-mêmes vos campagnes afin de faire connaître le mieux possible votre site !

Ce tutoriel est une sorte de cours / TP guidé, garni d'infos qui vont vous permettre de mettre pleins de statistiques partout sur votre site. :soleil:

TP n°1 : combien ai-je de visites ?

Ce script devra se diviser en plusieurs parties :

  • nombre de visites ;

  • nombre de visites par jour (nombre moyen, nombre maximum).

Certaines parties du script ressemblent fortement à celles du tutoriel officiel de M@teo21.
J'en tiens compte mais sachez que ma correction sera différente. Vous pouvez néanmoins vous en inspirer si vous bloquez.
De plus les scripts seront en général plus complets car nous allons beaucoup travailler dessus.

Nombre de visites

Nous avons juste à stocker un nombre, celui du nombre de visites. En effet, ce script s'exécute sur toutes les pages de votre site. À chaque visite on devra incrémenter ce nombre.

Il est évident que nous n'allons pas stocker ce nombre dans une base de données SQL, la connexion est bien trop lente et si on devait se reconnecter à chaque ouverture de page pour afficher UN NOMBRE, le serveur ralentirait inutilement.

Un fichier contenant ce nombre semble donc parfaitement indiqué.
On rangera tous les scripts de ce tutoriel dans un dossier "stats".
Ce fichier s'appellera visiteurs.txt et il contiendra une seule ligne, le nombre de visiteurs. Pour faire marcher votre script à la première utilisation, on l'initialise en mettant comme valeur 0.

N'oubliez pas de régler le CHMOD à 777 !

Voici comment se divisera votre script :

  • ouverture en lecture et écriture du fichier visiteurs.txt ;

  • lecture de l'unique ligne du fichier contenant le nombre de visiteurs ;

  • incrémentation de ce nombre ;

  • écriture du nombre incrémenté dans le fichier ;

  • affichage du nombre incrémenté.

Nous utiliserons l'extension mysqli_ dans ce tutoriel.
Avant tout le script du tutoriel, on se connecte à notre base de données comme ceci :

$connexion = mysqli_connect('host', 'username', 'password');
$db = mysqli_select_db($connexion, 'stats');

 

Correction !

Avouez que ce n'était pas bien dur !
Comment ça vous n'avez pas réussi ? o_O
Si c'est le cas, il serait préférable de revoir vos bases, non ?


 

 

 
$nb_visites = file_get_contents('data/pagesvues.txt');

 
$nb_visites++;

 
file_put_contents('data/pagesvues.txt', $nb_visites);

 
echo 'Nombre de pages vues : ' . $nb_visites . '
';

 
?>

 

Comme vous pouvez le voir, ce n'était pas compliqué. :p

On attaque le...

Nombre de visites par jour

Vous l'aurez compris, ce script est applicable pour les mois, les années, bref ici on prendra les jours car c'est le plus utilisé.
Votre mission (si vous l'acceptez :soleil: ) sera d'obtenir les statistiques suivantes pour les afficher sur votre site :

  • nombre de visites aujourd'hui ;

  • garder en mémoire les nombres de visites de chaque jour ;

  • afficher le nombre maximum de visites en un jour suivi de la mention « Établi le ...» ;

  • faire la moyenne du nombre de visites par jour.

Eh oui, ça se complexifie. :-°

Il est tout à fait possible d'utiliser un fichier pour ce script, mais par mesure de confort et de facilité, nous allons faire ça avec une table SQL. C'est plus simple pour débuter.

Allez, cette fois je donne pas plus d'indications. ;)

Bonne chance !

Si vous avez du mal avec les données temporelles de MySQL, je vous conseille ce tutoriel : MySQL et les données temporelles.

1, 2, 3... Correction !

Alors, c'est plus compliqué que ça en a l'air hein ?

Euh... :euh:

Ne vous inquiétez pas si vous n'y êtes pas arrivé directement, servez-vous de la correction pour compléter votre code.

On commence par la structure de la table SQL que je vais utiliser.


 

 
--

 
-- Structure de la table `visites_jour`

 
--

 

 
CREATE TABLE `visites_jour` (

 
`visites` mediumint(9) NOT NULL,

 
`date` date NOT NULL

 
);

 

On voit donc que c'est une table très basique, mais nous n'aurons pas besoin de plus.

Passons au code PHP.


 

 

 
//ETAPE 1 - Affichage du nombre de visites d'aujourd'hui

 
$retour_count = mysqli_query($connexion, 'SELECT COUNT(*) AS nbre_entrees FROM visites_jour WHERE date=CURRENT_DATE()');//On compte le nombre d'entrées pour aujourd'hui

 
$donnees_count = mysqli_fetch_assoc($retour_count); //Fetch-array

 
echo 'Pages vues aujourd\'hui : '; // On affiche tout de suite pour pas le retaper 2 fois après


 


 
if ($donnees_count['nbre_entrees'] == 0) //Si la date d'aujourd'hui n'a pas encore été enregistrée (première visite de la journée)


 
{


 
mysqli_query($connexion, 'INSERT INTO visites_jour(visites, date) VALUES (1, CURRENT_DATE());'); //On rentre la date d'aujourd'hui et on marque 1 comme nombre de visites.


 
echo '1'; //On affiche une visite car c'est la première visite de la journée


 
} else { //Si la date a déjà été enregistrée


 
$retour = mysqli_query($connexion, 'SELECT visites FROM visites_jour WHERE date=CURRENT_DATE()'); //On sélectionne l'entrée qui correspond à notre date


 
$donnees = mysqli_fetch_assoc($retour);


 
$visites = $donnees['visites'] + 1; //Incrémentation du nombre de visites


 
mysqli_query($connexion, 'UPDATE visites_jour SET visites = visites + 1 WHERE date=CURRENT_DATE()'); //Update dans la base de données


 
echo $visites; //Enfin, on affiche le nombre de visites d'aujourd'hui !


 
}


 
echo '
';

 

 
//ETAPE 2 - Record des connectés par jour

 

 
$retour_max = mysqli_query($connexion, 'SELECT visites, date FROM visites_jour ORDER BY visites DESC LIMIT 0, 1'); //On sélectionne l'entrée qui a le nombre visite le plus important

 
$donnees_max = mysqli_fetch_assoc($retour_max);

 
echo 'Record : ' . $donnees_max['visites'] . ' établi le ' . $donnees_max['date'] . '
'; //On l'affiche ainsi que la date à laquelle le record a été établi

 

 
//ETAPE 3 - Moyenne du nombre de visites par jour

 
$total_visites = 0; //Nombre de visites

 
/*(pour éviter les bugs on ne prendra pas le nombre du premier exercice,

 
mais celui-ci reste utile pour être affiché sur toutes les pages car il est plus rapide,

 
contrairement à $total_visites dont on ne se servira que pour la page de stats)*/

 

 
$total_jours = 0;//Nombre de jours enregistrés dans la base

 

 
$total_visites = mysqli_fetch_assoc(mysqli_query($connexion, 'SELECT SUM(visites) FROM visites_jour AS total_visites'));

 
$total_visites = $total visites['total visites'];

 

 
$total_jours = mysqli_fetch_assoc(mysqli_query($connexion, 'SELECT COUNT(*) FROM visites_jour AS total_jours'));

 
$total_jours = $total_jours['total_jours'];

 

 
$moyenne = $total_visites/$total_jours; //on fait la moyenne

 
echo 'Moyenne : ' . $moyenne . ' visiteurs par jour
'; // On affiche ! Terminé !!!

 

 
?>

 

Vous pouvez ajouter un champ "id_page" dans la table qui vous permettra d'enregistrer le nom de la page qui a été vue et ainsi voir les pages qui intéressent le plus vos internautes. ;)

TP n°2 : qui est connecté sur mon site ?

Ce script se déroulera en trois parties :

  • affichage du nombre de visiteurs connectés ;

  • affichage du record du nombre de connectés suivi de la date où il a été établi ;

  • affichage de la liste des connectés avec leurs IP et la page qu'ils visitent (il est déconseillé d'afficher les IP des visiteurs publiquement, on préfèrera séparer cette partie dans le panel admin).

Affichage du nombre de visiteurs connectés

Mettons-nous d'accord sur un point : il est impossible de réellement savoir qui lit nos pages. En effet, même si l'internaute reste connecté pour lire un article de notre site pendant 1 heure, on ne le saura pas, on va donc faire des approximations.

Nous allons donc considérer que :

  • lorsqu'un internaute affiche notre page, il reste connecté dessus 5 minutes ;

  • si au bout des 5 minutes il n'a pas changé de page (donc s'il n'en a pas chargé une autre) on le supprime, il n'est plus connecté ;

  • nous allons identifier les connectés grâce à leur IP ;

  • quand l'internaute change de page, on recommence le décompte de 5 minutes.

Nous allons faire un truc intéressant : on va aussi mettre dans un champ la page où se trouve le visiteur, ce qui permettra de faire une liste des visiteurs connectés plus complète !

Je




Mots-clés :

openclassroom


- Afficher plus de commentaires -

×

cet article vous a-t-il été utile ?