Steve TENZA
Web développeur
Facebook Me contacter Cookie
Télécharger
Noter:
3/5 (3)
Ajouté/Modifié le 2025-01-04
Visionné 12084 fois

C2stats : suivez le trafic de votre site (gratuit, sans base de données)

Description

Je vous partage la version 3 de mon script de statistiques qui vous permettra de connaitre le nombre de visiteur qui viennent sur votre site. Il constitue une solution complète pour générer des archives des visites journalières, mensuelles et annuelles pour le site web où vous l'utiliserez, et vous donnera un aperçu détaillé des visites, des robots qui crawlent vos pages et les pages qui sont partagées sur les réseaux sociaux, entre autres.

Les fonctionnalités incluses

- Total des visiteurs : Le nombre total de visiteurs qui ont accédé au site au fil du temps.
- Nombre de pages vues : Le nombre de pages consultées par l'ensemble des visiteurs.
- Moyenne de pages par visite : La moyenne de pages consultées par chaque visiteur.
- Sites référents : Les sites qui ont dirigé les visiteurs vers le site en question.
- Pages partagées sur les réseaux sociaux : Les pages partagées sur tel ou tel réseau social.
- Navigateurs & PC utilisé : Les navigateurs et systèmes d'exploitation utilisés par les visiteurs.
- Robots d'exploration : Les robots qui ont parcouru le site et les pages qu'ils ont explorées.
- Utilisateurs sur mobile : Le nombre d'utilisateurs accédant au site depuis des appareils mobiles.

L'une des caractéristiques essentielles est qu'il n'a pas besoin de base de données pour stocker les statistiques, Il est entièrement automatisé grâce à l'utilisation de tâches CRON, les statistiques sauvegardées tous les jours, s'archivent automatiquement à minuit grâce à une CRON. Je traite tout en fichiers logs via des CRON, c'est plus simple à mettre en place, le simple transfert du dossier "C2stats" sur votre site et l'inclusion du fichier C2stats/include/footer-script.php, vous permettra de commencer l'enregistrement des logs.

Un petit aperçu

Comme vous le voyez, j'ai ajouté un graphique SVG pour cette 3ème version de C2stats, vous verrez le graphique se remplir automatiquement au fil des jours qu'il scannera. ⏱️👀📊



Vous avez aussi une version qui enregistre uniquement combien de visiteur viennent sur votre site chaque jour : le compteur de visiteur sans base de données.

changelog.txt


24 novembre 2024 (v3) :

- Refonte complète
- Affichage des stats en JS (XHR), permet la prise en charge de gros sites ayant de gros volumes journaliers
- Ajout d'un graphique SVG, affiche le nombre de vues par jour pour la période sélectionnée
- Mise à jour de jQuery JS
- Ajout de app.js (Fichiers JS rassemblés dans un dossier js)
- Ajout de la détection des robots :
- ScrapeheroBot
- Facebot
- YandexNews
- SmarterMail
- eMClient
- Website-info.net-Robot
- rc-crawler
- Qwantbot
- PerplexityBot
- Validator.nu/LV
- W3C_Validator
- GlobalWebSearchx
- NetAPI
- ReactorNetty
- Spark
- TimeTreeBot
- Schema-Markup-Validator
- DuckDuckBot
- keys-so-bot
- FriendlyCrawler
- MixrankBot
- GeedoProductSearch
- Searcherweb
- Searcherxweb
- Microsoft Office Protocol Discovery
- TheWebInternetSearcher
- TheSafexInternetSearch
- MyChUp
- wpbot (WordPress Bot)
- Symfony BrowserKit
- ELB-HealthChecker
- Example3
- WebwikiBot
- RestSharp
- BitSightBot
- INTWATCH
- P3P Validator
- Crisp-LinkPreview
- SSTImap
- Ixquick.com (startpage.com)
- RSiteAuditor (outil SEO)
- Dormouse
- MetadataScraper
- MyCrawler
- PoeSearchBot
- intelx.io_bot
- Cookiebot
- Googlebot-Image

- Nouveaux navigateurs détectés
- PlayStation
- Arora
- MessengerDesktop (Facebook)
- ZuneWP7 (Zune Windows Phone 7)
- NetSurf (était détecté comme bot, erreur)
- Presto (Opera Presto)
- Mobile DuckDuckGo
- DoCoMo (opérateur de télécommunications mobile japonais)
- SEMC (développé par SonyEricsson)
- AppleWebKit (Safari)
- UC Browser
- NetFront
- Opera Mini
- Samsung Internet
- Microsoft Edge

- Nouveau systèmes d'exploitation détectés
- SymbianOS
- MeeGo

- Nouveaux réseaux sociaux détectés
- Slack
- GitHub
- Medium
- WeChat
- Viber
- Mastodon
- Pocket (Mozilla)
- Digg
- Bluesky
- Foursquare
- Reddit
- Hangouts
- Line (concurrent asiatique WhatsApp)
- Kik
- Meet
- Telegram

15 février 2022 (v1.3) :
- Erreur variables PHP (fonctions.php)

13 mars 2021 (v1.2) :
- Modification de la fonction C2chemin, on peut maintenant mettre le dossier C2stats dans un dossier et le chemin restera correct. (le footer-script.php et le script à insérer dans le footer sont à remplacer)



aide.txt


-------------------------
-- Installation du script
-------------------------

Pour faire fonctionner le script vous devez : (3 étapes)



1. Envoyer le dossier C2stats sur votre site (à la racine ou là où vous voulez, prenez soin de modifier le chemin vers C2stats au code suivant)
-------------------------------------



2. Mettre en place le code suivant sur toutes les fins de pages de votre site, après </html> ou juste avant
-------------------------------------

//DEBUT CODE C2STATS

//"define C2STATS" est une sécurité pour pouvoir inclure le fichier footer-script.php
define('C2STATS', true);

//inclusion script comptage visite
include __DIR__ . '/C2stats/includes/footer-script.php';

//FIN CODE C2STATS



3. Programmer la tâche CRON suivante
------------------------------------

C2stats/cron/jour.php

- A lancer chaque jour, à minuit ou maximum dans la première heure de la journée



4. Vous pouvez maintenant accéder aux stats via l'adresse : votresite/C2stats
------------------------------------



Script réalisé par Steve TENZA (c2script.com), mis à disposition gratuitement.

Permet d'avoir des statistiques journalières, mensuelle et annuelles du site où il est utilisé

Donne des informations sur :
----------------------------

- le total des visiteurs uniques
- le nombre de pages vues
- la moyenne de page visitées par visite
- les sites référant (arrivé depuis quel site)
- les pages qui sont partagées sur les réseaux sociaux
- le navigateur et le système d'exploitation utilisé
- les robots qui ont crawlés le site et les pages crawlées
- le nombre d'utilisateurs sur mobiles
- les pages visitées par le visiteur


version: 1.1, le 27/03/2020
version: 2.0, le 08/12/2023
version: 3.0, le 01/12/2024


----------------------------------------------
-- Infos sur les fichiers présents à la racine
----------------------------------------------

includes/config.php
----------------------------

- permet la configuration du script


includes/fonctions.php
----------------------------

- fonctions nécessaires à l'affichage des statistiques


includes/footer-script.php
----------------------------

- permet d'enregistrer les statistiques sur votre site, ce fichier est inclut


index.php
----------------------------

- affiche les statistiques


js/xhr.php
----------------------------

- appel des stats en JS (AJAX/XHR) pour les afficher sur index.php



------------------------------------
-- Infos sur le dossier /txt/listes/
------------------------------------

les fichiers txt de ce dossier contiennent des informations détaillés sur le user_agent et sont analysés ligne par ligne, de haut en bas, par le script pour en afficher les détails



txt/listes/bots.txt
----------------------------

- Contient tous les bots qui peuvent être détectés
- 1 bot/ligne, aucune ligne ne doit être vide
- Si vous souhaitez en rajouter, le mettre sur une nouvelle ligne et faire attention qu'il ressemble pas à un déjà inscrit, si il ressemble (ex: MyBot ressemble à ThisMyBot) mettre MyBot après ThisMyBot pour qu'il soit pas confondu (la recherche se faisant de haut en bas), dans cette optique, certains sont en bas parce qu'ils ressemble à beaucoup d'autres car ils ont un nom avec très peu de lettres

Astuce :

- Mettre les robots les plus connus en haut de la liste pour optimiser le temps de recherche


txt/listes/ignores.txt
----------------------------

- Contient tous les user_agent ignorés
- doit être sous forme d'expression régulière, ex: ^ma chaine$, sans délimiteur, les \ doivent être échappés avec deux \ (\ => \\\)


txt/listes/reseaux-sociaux.txt
-------------------

- Contient les réseaux sociaux les plus connus, permet de les reconnaitre et d'avoir des infos sur les pages partagées


txt/listes/nouveaux-ua.txt
-------------------------

- Contient les nouveaux user_agent qui ne sont pas analysable car non reconnus par le script actuel


txt/listes/nouveaux-deja-envoyes.txt
-------------------------

- permet d'enregistrer les nouveaux user_agent qui sont envoyés par mail, pour ne pas vous les renvoyer
- Pour désactiver l'envoi du mail : includes/config.php => $C2STATS['mail'] = ''; (laisser vide)


txt/listes/bots-website-links.txt
-------------------------

- attribut un lien à chaque bot, un lien qui est rapport avec le bot en question et qui permet d'avoir des informations à son propos
j'ai fait cette page dans l'idée de mettre un lien cliquable sur chaque robot détecté mais ne trouvais pas utile cette fonctionnalité pour le moment, plus tard, peut-être




cron/jour.php
-------------------------
- vide les stats d'hier pour enregistrer celles d'aujourd'hui
- le script vous envoi un mail chaque 1er du mois pour vous avertir des nouveaux UA trouvés (via le fichier cron/jour.php)




--------------------------------------
-- Infos sur le dossier /txt/archives/
--------------------------------------

- Contient toutes les archives de statistiques, classées par année et par mois sous forme: txt/archives/[année]/[mois]/[jour]/[ici les fichiers de statistiques journalières pour chaque heure de la journée].txt
- Chaque dossier /mois/ contient les jours déjà passés du mois, sous forme "01", "02",... et contiennent chacun des .txt de chaque heure 00.txt, 01.txt,... ces fichiers sont annalysés par le script pour être affichés en détails sur index.php


--------------------------------------
-- Infos sur le dossier /txt/ips/
--------------------------------------

- Chaque heure de la journée 00.txt, 01.txt,... fichiers mis à jour automatiquement dès qu'il ya une visite pour telle heure et vidés via la cron, chaque début de journée


--------------------------------------
POUR METTRE À ZÉRO LE SCRIPT :

1. vider les logs ips :

$f = glob("txt/ips/*.txt");
foreach($f as $s)
file_put_contents($s, '');


2. supprimer les dossiers dans txt/archives/

--------------------------------------


(version: 3)


J'espère que ce script gratuit vous sera utile dans vos projets.
Si vous souhaitez soutenir mon travail, un simple clic sur le bouton "Donner remercier" ci-dessous ou une note serait grandement apprécié. Merci pour votre générosité !
Votre réussite en ligne commence ici

Vous cherchez à pousser encore plus loin vos idées ou à les concrétiser avec un site internet sur mesure ? Je suis là pour vous aider ! Mon expérience en développement web est à votre disposition.

Que ce soit la création de votre site web pro ou l'apport de fonctionnalités avancées à votre projet, contactez-moi pour en discuter et avoir un devis gratuit personnalisé.

Mon objectif est de vous offrir des solutions sur mesure qui répondent à vos besoins, et votre vision associée à mon expertise donnera vie à votre projet web parfait. Contactez-moi aujourd'hui, je réponds en général en moins d'une heure :

Demander un devis
Réponse rapide !

Vous recherchez un script précis ?

Dites-moi ce dont vous avez besoin, je peux développer le script demandé et vous envoyer un mail dès qu'il est dispo !

🔔 Vous pouvez laisser votre mail pour recevoir les nouveaux scripts. Pas de pub, pas de tracas. Vous êtes libre de le supprimer à tout moment.

Je prends en compte toutes les demandes. Les idées les plus populaires passent en priorité et seront publiées dès qu'elles seront prêtes. 2842 demandes reçues.

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom
Email
Message
Captcha
memo1
Commenter

mike0609 le 12 Mai 2022 à 21:00

Warning: include(../C2stats/footer-script.php): Failed to open stream: No such file or directory in C:\wamp64\www\Test\News1\index.php on line 192
Call Stack
# Time Memory Function Location
1 0.0005 364720 {main}( ) ...\index.php:0

( ! ) Warning: include(): Failed opening '../C2stats/footer-script.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp64\www\Test\News1\index.php on line 192
Call Stack

Bonjour j'ai cette erreur et je ne comprend pas pourquoi, merci pour les codes !!

admin le 20 Mai 2022 à 10:38

Utilisez cette fonction footer :

	function C2stats_chemin($dossiers=0){
$dir= __DIR__;
if($dossiers>0){
for($i=1;$i<=$dossiers;$i++)
$dir=dirname($dir);
}
return $dir;
}

//indiquer si cette page (là où est inclu ce code) est dans un dossier (mettez le nombre de dossier) sinon mettez 0 pour la racine
$C2stats_chemin=C2stats_chemin(1);

define('C2STATS',1);//une sécurité pour pouvoir inclure le fichier footer-script.php
include $C2stats_chemin.'/C2stats/footer-script.php';

mike0609 le 30 Mai 2022 à 11:05

Merci pour votre réponse, malheureusement cela ne fonctionne pas, j'ai des erreurs, je voudrais savoir si vous aviez la même chose, mais en php et stockage dans la base de données ? En vous remerciant par avance.

admin le 30 Mai 2022 à 11:07

Avez-vous fait ceci, comme indiqué dans les commentaires :

//indiquer si cette page (là où est inclu ce code) est dans un dossier (mettez le nombre de dossier) sinon mettez 0 pour la racine

Mike0609 le 30 Mai 2022 à 11:20

Oui oui, j'ai bien suivi les aides.

admin le 30 Mai 2022 à 11:20

Quelle erreur avez-vous maintenant ?

Mike0609 le 30 Mai 2022 à 11:28

Merci pour vos réponses rapides, je n'ai actuellement pas le code sous les yeux, j'enverrai un commentaire ce soir pour vous indiquer mon erreur, je vérifiai tout de même les manipulations afin de voir si je ne me suis pas trompé

mike0609 le 31 Mai 2022 à 18:39

Bonjour,

J'ai trouvé mon erreur. Mon footer est un fichier situé dans dans un dossier mais pas les pages qui sont à la racine mais dans ce cas je suis obligé d'informer que je suis dans un dossier. J'ai donc des résultats merci beaucoup. J'ai essayé de charger le fichier C2stats/cron/jour.php, cela m'en mène sur une page ou l'accès met interdit, j'ai regardé le fichier .htaccess qui refuse l'accès à tous. Cela est-ce normal ? Merci encore et désolé du délai, je n'ai pu le faire hier soir.

admin le 31 Mai 2022 à 21:10

Pas de souci, oui c'est normal que le fichier ne peut pas être lancé via le web pour éviter que n'importe qui lance le script.

Quand il est marqué "lancer la cron", c'est "programmer une cron" pas le lancer depuis le navigateur.

Les fichiers cron seront lancés aux heures voulues, vous n'avez pas à les toucher :)

Depuis votre hébergement web vous avez sans doute une option "cron" ou nommé "tâches automatisées" (sauf pour les petits hébergements ou cette option est en général pas comprise).

mike0609 le 10 Juin 2022 à 09:43

C'est encore moi !
J'ai lancé mon automatisation cron sur Ionos, cependant j'ai un echec lors de son lancement :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Error 403 - Forbidden
</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="no-cache" http-equiv="cache-control">
</head>
<body style="font-family:arial;">
<h1 style="color:#0a328c;font-size:1.0em;">
Error 403 - Forbidden
</h1>
<p style="font-size:0.8em;">
L'acc&egrave;s au fichier requiert une autorisation.
</p>
</body>
</html>
J'ai cherché dans les fichiers, mais je n'ai pas trouvé de solution

Retour à la liste des scripts

Un site à créer ?
Contactez-moi