Stats du site :
3 Visiteurs en ligne
On voit souvent sur des sites le nombre de visiteurs connectés. Il est vrai
que cella ne sert à rien mais ca fait toujours bien.
Donc ce script vous permet d'afficher en direct sur une page de votre choix le
nombre visiteurs qui se sont connectés dans un temps déterminer (mon cas est de
cinq minutes) et le tous sans base de données.
Un simple fichier texte (.txt) suffi !
Pour l'installation rien de bien compliquer : Un seul fichier pour le script, un
fichier texte (les droits d'écriture sont bien sûr exigés), et un petit bout de
code à insérer dans les pages où l'on veut afficher le résultat.
Cerise sur la gâteau : Le script met le "S" si plus de deux visiteurs sont
connectés !
Voila comment j'ai créer mon petit compteur en direct sans MySQL, avec
simplement un fichier texte.
Compteur.php : (le script en lui même) à placer où l'on veut.
Configurer bien la variable $compteur_direct
avec le chemin complet de préférence. En effet les chemin relatif (ex :
../../mapage.htm) laisse certains bugs.
<?php
// Script améliorer pas Galoula France !
// Site oficiel : https://www.galoula.net
// Page du script : https://www.galoula.net/fr/Scripts/Compteur_Direct/
$compteur_direct = file("c:/compteur.txt -- Indiquez le chemin complet");
$compteur_direct = file("/var/ServeurWeb/Sites/www.galoula.net/www/fr/Scripts/compteur.txt");
$ligne_actuelle=-2; // valeur virtuelle. Sera 0 au 1er passage dans la boucle...
$nblignes=count($compteur_direct);
do { // On boucle jusqu'à trouver le premier visiteur à ne pas eliminer, ou la fin de fichier.
$ligne_actuelle=$ligne_actuelle+2; // visiteur suivant
// Petite modification de galoula pour eviter les "Undefined offset: XX in SOURCE on line XX"
} while(($ligne_actuelle != $nblignes) && ((date('U', strtotime('-300 seconds')) > $compteur_direct[$ligne_actuelle]) && ($ligne_actuelle < $nblignes)));
// 300 secondes = 5 minutes. Cette durée est modifiable.
// -----------------------------------------------------------------------------------
// On lit l'adresse IP du visiteur qui est en train de charger une page
if(isset($_SERVER["REMOTE_ADDR"])) { // Si on peut déterminer l'adresse IP
$ip_en_cours = $_SERVER["REMOTE_ADDR"];
}
else { // sinon
$ip_en_cours = "Non identifiable";
}
// -----------------------------------------------------------------------------------
// on reconstitue le futur contenu du fichier dans la variable $compteur
$compteur = "";
if($ligne_actuelle < count($compteur_direct)) { // des visiteurs à ne pas éliminer?
// Pour tous les visiteurs inscrits dans le fichier à ne pas éliminer...
for($i=$ligne_actuelle; $i<count($compteur_direct); $i=$i+2) {
// Garder ce visiteur, sauf si c'est celui qui est en train de recharger
// une page (ceci afin déviter les doublons).
if(trim($compteur_direct[$i+1]) != $ip_en_cours) {
$compteur .= trim($compteur_direct[$i])."\n".trim($compteur_direct[$i+1])."\n";
}
}
}
// -----------------------------------------------------------------------------------
// Enfin on ajoute le visiteur qui est en train de se connecter
$compteur .= date('U')."\n".$ip_en_cours;
// -----------------------------------------------------------------------------------
// Et on écrit le tout dans le fichier
$pointeur=fopen($_SERVER['DOCUMENT_ROOT'] . "/fr/Scripts/compteur.txt","w");
fputs($pointeur,$compteur);
fclose($pointeur);
?>
|
Entrez ce code dans une de vos page (php) pour afficher le nombre de
visiteurs en ligne :
<?php
// Affichage du résultat.
include ("c:/Scripts/Compteur.php -- de même, entrez le chemin complet");
echo (count($compteur_direct)/2)." ";
?> visiteur<?if((count($compteur_direct)/2) > 1) {
echo "s";
}
?> en ligne
|
Simple non ?