Bonjour, sur mon site, j'ai un petit script qui compte le nombre de pages vues ainsi que le nombre de visites journalières.
Je souhaite l'améliorer en ignorant le trafic que je génère, et pour cela je place un cookie sur mon ordinateur.
Si ce cookie est présent sur l'ordinateur du client, le compteur n'est pas mis à jour.
Voila le code du compteur de pages vues:
Code :
- <?php
- function cpt_vues(){
- // on créé un fichier compteur.txt s'il existe po
- if(!file_exists("etc/compteur/compteur.txt" )){
- $fichier = fopen("etc/compteur/compteur.txt","w+" );
- fclose($fichier);
- }
- // on incrémente le compteur de 1 dans le fichier compteur.txt
- $fichier = fopen("etc/compteur/compteur.txt","r+" );
- $cpt = fgets($fichier,12)+1;
- fseek($fichier,0);
- fputs($fichier,$cpt);
- fclose($fichier);
- return join('',file("etc/compteur/compteur.txt" ));
- }
- //pour afficher la valeur du compteur à l'écran :
- //si le cookie est défini, alors on se contente d'afficher le nombre de pages vues
- if(isset($_COOKIE['stats_perso']))
- echo join('',file("etc/compteur/compteur.txt" )).' - <font color="red">stats perso off</font>';
- //sinon, on met à jour le compteur et on affiche le nombre de pages vues
- else
- echo cpt_vues();
- ?>
|
J'ai aussi un fichier php qui me permet de créer ce fameux cookie, et donc de m'exclure des stats:
Code :
- <?php
- //on mémorise l'état du cooki avant
- if (isset($_COOKIE['stats_perso']))
- $status = '<font color="red">Stats OFF</font> (Cookie défini, valeur:*'.$_COOKIE['stats_perso'].'*)' ;
- else
- $status = '<font color="green">Stats ON</font> (Cookie non défini)';
- //fin de mémorisation
- $timestamp_expire = time() + 100*24*3600; // Le cookie expirera dans un an
- if (isset($_GET['action'])){
- if ($_GET['action']=='stats_off')
- setcookie('stats_perso', 'yes', $timestamp_expire); // On écrit un cookie
- else if ($_GET['action']=='stats_on')
- setcookie('stats_perso', '', $timestamp_expire); // On écrit un cookie
- header('Location:/includes/cookie-stat-off.php');
- }
- //on mémorise l'état du cooki après
- if (isset($_COOKIE['stats_perso']))
- $status_fin = '<font color="red">Stats OFF</font> (Cookie défini, valeur:*'.$_COOKIE['stats_perso'].'*)';
- else
- $status_fin = '<font color="green">Stats ON</font> (Cookie non défini)';
- //fin de mémorisation
- ?>
- + du html qui affiche le status avant et après
|
Seulement voila, que le cookie soit sur mon ordi ou pas, ca changer rien il n'arrive pas à m'ignorer (le compteur est toujours mis à jour).
Je n'arrive pas a comprendre pourquoi il passe toujours dans
Code :
- else
- echo cpt_vues();
|
Ca fait presque une heure que je bloque là dessus, et je commence à désespérer, alors je m'en remet à vous.
Merci
---------------
cours pour débuter sous 3d studio max - Photoshop pour les nuls