Galoula France ! Bricolages Projets Expériences PXE Tutoriels Moi Services Argent du NET Autres Liens  
 
Compter en Direct vos visiteurs ...
     
MailORama
     
Stats du site :
103 Forums avec 30 inscrits.
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 ?

 

©CopyRight 2000 - 2024 - Galoula.net par Galoula - Tous droits réservés.

Valid CSS!