problème de cookie

problème de cookie - PHP - Programmation

Marsh Posté le 14-01-2008 à 21:16:56    

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 :
  1. <?php
  2. function cpt_vues(){
  3. // on créé un fichier compteur.txt s'il existe po
  4. if(!file_exists("etc/compteur/compteur.txt" )){
  5.  $fichier = fopen("etc/compteur/compteur.txt","w+" );
  6.  fclose($fichier);
  7. }
  8. // on incrémente le compteur de 1 dans le fichier compteur.txt
  9. $fichier = fopen("etc/compteur/compteur.txt","r+" );
  10. $cpt = fgets($fichier,12)+1;
  11. fseek($fichier,0);
  12. fputs($fichier,$cpt);
  13. fclose($fichier);
  14. return join('',file("etc/compteur/compteur.txt" ));
  15. }
  16. //pour afficher la valeur du compteur à l'écran :
  17. //si le cookie est défini, alors on se contente d'afficher le nombre de pages vues
  18. if(isset($_COOKIE['stats_perso']))
  19. echo join('',file("etc/compteur/compteur.txt" )).' - <font color="red">stats perso off</font>';
  20. //sinon, on met à jour le compteur et on affiche le nombre de pages vues
  21. else
  22. echo cpt_vues();
  23. ?>


 
J'ai aussi un fichier php qui me permet de créer ce fameux cookie, et donc de m'exclure des stats:

Code :
  1. <?php
  2. //on mémorise l'état du cooki avant
  3. if (isset($_COOKIE['stats_perso']))
  4. $status = '<font color="red">Stats OFF</font> (Cookie défini, valeur:*'.$_COOKIE['stats_perso'].'*)' ;
  5. else
  6. $status = '<font color="green">Stats ON</font> (Cookie non défini)';
  7. //fin de mémorisation
  8. $timestamp_expire = time() + 100*24*3600; // Le cookie expirera dans un an
  9. if (isset($_GET['action'])){
  10. if ($_GET['action']=='stats_off')
  11.  setcookie('stats_perso', 'yes', $timestamp_expire); // On écrit un cookie
  12. else if ($_GET['action']=='stats_on')
  13.  setcookie('stats_perso', '', $timestamp_expire); // On écrit un cookie
  14. header('Location:/includes/cookie-stat-off.php');
  15. }
  16. //on mémorise l'état du cooki après
  17. if (isset($_COOKIE['stats_perso']))
  18. $status_fin = '<font color="red">Stats OFF</font> (Cookie défini, valeur:*'.$_COOKIE['stats_perso'].'*)';
  19. else
  20. $status_fin = '<font color="green">Stats ON</font> (Cookie non défini)';
  21. //fin de mémorisation
  22. ?>
  23. + 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 :
  1. else
  2. 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
Reply

Marsh Posté le 14-01-2008 à 21:16:56   

Reply

Marsh Posté le 14-01-2008 à 23:03:14    

Bon ben problème résolu, il fallait simplement renseigner path dans setcookie, sinon le cookie n'est valable que sur le sous repertoire includes.
Merci de votre aide si précieuse  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed