Aller au contenu

Compteur de visites


lkaiman

Messages recommandés

Bonjour a tous

J'aimerais créer un petit compteur de visite à mettre sur ma page d'accueil.

Actuellement j'ai chopé un compteur gratuit pas mal, mais je suis dépendant du site et de son script.

IL est sobre mais un lien vers le site du compteur se cache derrière. C'est pas que çà me gène mais je voudrais avoir mon propre compteur

J'ai vu sur mes recherches du net que l'on peut créer un petit script associé à un fichier texte.

Dans ce fichier texte se trouve le numéro 0 qui s'incrémente à chaque visite.

Ce petit script était en php, et ma page d'accueil (une image avec lien de redirection vers mon forum/blog en construction) est simple et en html.

Voila, je demande vos lumière sur la création d'un compteur perso.

En vous remerciant d'avance

Lien vers le commentaire
Partager sur d’autres sites

Sa dépends déjà si tu veus que les visiteurs uniques ou non...

Si oui tu fais un fichier des ip qui se sont connectées dans la journée (pour éviter de compteur plusieurs fois la même ip, donc plusieurs fois le même visiteur).

Pour récupérer l'ip qui parcours la page, suffit de faire un :

$ip=$_SYSTEM[REMOTE_ADDR];

Ensuite tu incrémentes ton compteur dans le fichier txt si l'ip courante n'a pas été trouvée dans le premier fichier des connexions de la journée.

Puis une fois par jour, tu fais un petit script que te remet à zéro le fichier des connectés (il suffit pr sa de comparer la date du jour avec celle du dernier enregistré ds le fichier).

Voilà

@+

Lien vers le commentaire
Partager sur d’autres sites

$_SYSTEM[REMOTE_ADDR]

n'existe pas...

par contre avec $_SERVER['REMOTE_ADDR'] ça peut marcher de partout ;)

J'suis pas un dingue de code erf!

j'ai trouvé çà sur le net

-> comment faire un compteur sans redondance sans forcément passer par une seule page pour comptabiliser l'entrée

Phase 1 : incrémenter la valeur dans le fichier
Ce fichier va s’appeler compteur.cpt. 

Principe de l’algorithme :
si le fichier n’existe pas encore (file_exists), alors on le crée et on l’ouvre en écriture (fopen w) et on initialise le compteur à zéro en écrivant la chaîne ‘0’ en premiére ligne (fputs) et on le referme (fclose). Ensuite, ouverture du fichier en lecture plus écriture (fopen r+), lecture du nombre (fgets), incrémentation d’une unité du nombre (++), positionnement du pointeur courant du fichier en première ligne (fseek 0) et réécriture du nombre (fputs) puis fermeture (fclose). Cet algorithme (écrit dans la diapo suivante) est écrit directement dans le code source de la page d’accueil.

Algorithme :
$fichier = "compteur.cpt";	// affectation du nom de fichier
if( ! file_exists($fichier)) {	// test d’existence
// Initialisation du fichier si n’existe pas encore
$fp = fopen($fichier,"w");	// ouverture en écriture
fputs($fp,"0");			// écriture
fclose($fp);			// fermeture
}
$fp = fopen($fichier,"r+");	// ouverture
$hits = fgets($fp,10);		// lecture
$hits++;				// incrémentation
fseek($fp,0);			// positionnement
fputs($fp,$hits);			// écriture
fclose($fp);			// lecture



Phase 2:
Généralisation aux autres pages

Comme les internautes peuvent atterrir sur des pages internes à votre site sans passer par l’ accueil, il peut être intéressant de votre site sans passer par l’ accueil, il peut être intéressant de pouvoir comptabilité des visites des autres pages.
Créons donc une fonction que l’on placera dans un fichier à part

par exemple compteur.php et que l’on appellera par inclusion comme ceci :

<?php
include("compteur.php");Mon_Compteur("ma_page") ?>

Remplacez "ma_page" par un identifiant unique pour chaque

Généralisation aux autres pages
<?
function Mon_Compteur($page) {
$fichier = $page.".cpt";
if(!file_exists($fichier)) {
$fp = fopen($fichier,"w");
fputs($fp,"0");
fclose($fp);
}
$fp = fopen($fichier,"r+");
$hits = fgets($fp,10);
$hits++;
fseek($fp,0);
fseek($fp,0);
fputs($fp,$hits);
fclose($fp);
}
?>


Phase 3 :
Protection contre la redondance

Comme un visiteur peut charger plusieurs fois la même page au cours d’ une même visite, ce mode
même page au cours d’ une même visite, ce mode de décompte n’ est pas assez précis et va surestimé
le nombre réel de visiteurs.

Solutions ?
Il faut garder en mémoire le fait qu’ un visiteur est déjà passé par la page et incrémenter le compteur seulement si ce n’ est pas le cas
Protection contre la redondance
On va créer une variable de session : un tableau contenant la liste des pages visitées.

Principe du nouvel algorithme :

on teste l’ existence de la variable de session $PAGES_LIST.
Si elle n’ existe pas on la crée, on y ajoute la page en cours et on appelle la fonction Mon_Compteur
Si elle existe, on teste la présence de la page en cours dans ce tableau, si elle n’ y est pas alors on l’ y met et on appelle Mon_Compteur

L’ appel est légèrement différent :

<?php
$page = "ma_page";			// définition du nom de la page
include("compteur.php");		// chargement de l’ algorithme
?>

Protection contre la redondance
Code à rajouter dans le fichier compteur.php

session_start();				// démarrage de la session
if( ! isset($PAGES_LIST)) {		 /* test de l’ existence de la variable de session */
$PAGES_LIST = array($page); 		// création de la variable
session_register($PAGES_LIST); 	// ajout de la page en cours
Mon_compteur($page);			// incrémentation du compteur
} else {
if( ! in_array($page, $PAGES_LIST)) { 	// test de redondance
$PAGES_LIST[ ] = $page;		/* ajout dans la variable de session pour éviter la redondance */
Mon_compteur($page); 			// incrémentation du compteur
}

j'ai suivi à la lettre, mais a mon avis il manque l'intégration dans une page du nombre de visite

un peu d'aide siouplet !!

Lien vers le commentaire
Partager sur d’autres sites

des outils comme netstat ou xiti sont très performant et n'affiche qu'un petit logo...

ça ça marche

<?

function Mon_Compteur($page) {

$fichier = $page.".cpt";

if(!file_exists($fichier)) {

$fp = fopen($fichier,"w");

fputs($fp,"0");

fclose($fp);

}

$fp = fopen($fichier,"r+");

$hits = fgets($fp,10);

$hits++;

fseek($fp,0);

fseek($fp,0);

fputs($fp,$hits);

fclose($fp);

}

?>

on peux faire bcp plus simple par contre

un site avec un petit cour sympa sur l'ouverture, écriture, lecteur d'un fichier texte en php: toutwebmaster.be

c'est basique mais simple au moins

après le mieux est de créé un cookie pour chaque utilisateur qui vient sur ton site qui dure jusqu'a minuit (tu calcul suivant l'heure du serveur)

avant d'incrémenter le compteur, tu vérifie si le cookie existe...

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...