Compter l'acces a une page seulement une fois

Compter l'acces a une page seulement une fois - PHP - Programmation

Marsh Posté le 19-02-2004 à 21:18:36    

:hello: salut,
 
ok, mon titre n'est pas du tout explicite, mais je voyai pa comment expliquer ça dans un titre...
 
bon alors j'ai un compteur tout simple en php :
 

Citation :

<?
$couleurtexte="#000000";
 
    $fichier = "compteur.txt";
 
    $fp = @fopen($fichier, "r" );
    if (!$fp) {
        echo "Impossible d'ouvrir $fichier en lecture";
        exit;
    }
    $visites = fgets($fp, 8);
     
    echo $visites++;
    echo "</font>"; $visites.
    fclose($fp);
 
    $fp = @fopen($fichier, "w" );  
    if (!$fp) {
        echo "Impossible d'ouvrir $fichier en ecriture";
        exit;
    }
    fputs($fp, $visites);
    fclose($fp);
?>


 
voila, c'est juste pour afficher le nombre de personne qui ont accédées a mon site...
 
mais le probleme, c'est que la valeur est imcrémentée a chaque fois que le visiteur va sur l'index par exemple, donc j'aimerai que la visite d'une personne ne soit comptée qu'une seule fois...
 
je comptai m'en sortir avec son IP (tant que l'IP ne change pas, la valeur n'est pas incrémentée) et utiliser $REMOTE_ADDR mais j'avoue ne pas trop savoir comment m'y prendre...
 
j'espere avoir été clair  :sweat:  
 
merci de vos reponses  :jap:  :jap:


Message édité par PixelShader Man le 19-02-2004 à 21:19:25
Reply

Marsh Posté le 19-02-2004 à 21:18:36   

Reply

Marsh Posté le 20-02-2004 à 01:27:33    

Citation :

voila, c'est juste pour afficher le nombre de personne qui ont accédées a mon site...
<? //
echo "</font>"; $visites.
   // ?>


> et ca marche ?! :sweat:  
<?echo '</font>'.$visites; //je debute le php mais il me semble que ca fonctionne?> :p  

Citation :

mais le probleme, c'est que la valeur est imcrémentée a chaque fois que le visiteur va sur l'index par exemple, donc j'aimerai que la visite d'une personne ne soit comptée qu'une seule fois...


Tu peux peut-etre s'en sortir avec l'url de la page...?
(et copier le string de la page web courante 1 fois seulement dans un fichier si tu en utilises deja)
 

Citation :

j'espere avoir été clair :sweat:


  :jap:  :ange:


Message édité par lkolrn le 20-02-2004 à 01:30:58
Reply

Marsh Posté le 20-02-2004 à 10:42:54    

comment tu as su que je débutai en php ?  :??:  :??:  :??:  
(nan, en fait je voulai mettre une couleur a ma valeur qui s'affichai, mais ça a été quelque peu la galère... donc j'ai utilisé le html pour ça, mais j'ai oublié de faire le menage dans le code php  :whistle: )
 
le probleme, c'est que vu l'architecture de mon site, les visiteurs vont surement etre incités à revenir sur l'index au cours d'une meme visite...
 
mais en fait, ça m'a donné une idée... je vais mettre ce compteur pour un index avant le vrai index de la page ( :heink: ).... l'adresse de mon site donne sur index.php qui contient le compteur, et cette meme page redirige dans la seconde le visiteur sur index2.html, le home du site koi... et logiquement il reviendront jamais sur index.php au cours d'une meme visite...
ben c'est la méthode dite "à l'arrache" mais bon, tout le monde passe pas ces nuits à coder comme un malade  :sweat:  
 
bon ben merci quand meme  :jap: et emmettez un avis au cas où...  :hello:

Reply

Marsh Posté le 20-02-2004 à 11:08:39    

faut prendre en compte le fait que le visiteur n'accédera pas forcément à ton site par la page index. Plusieurs méthodes existent afin de ne lister un visiteur qu'un fois:
-les cookies: peut poser problème si le visiteur les refuse
-l'adresse ip: un peu plus lourd à gérer car il te faudra passer par une bdd
-les sessions: problème si le visteur ferme son navigateur et revient sur ton site
 
Il doit y avoir d'autres méthodes mais elles ne me viennent pas à l'esprit.
Tu peux bien sûr mixer le tout...

Reply

Marsh Posté le 20-02-2004 à 11:23:30    

pfff c'est vrai javai meme pas pensé au fait que le visiteur n'accède pas forcement au site par l'index... quoique pour linstant c'est un petit site communautaire...
 
les sessions ça à l'air de gérer  :)  parce que bon, si il ferme son navigateur, on peut imaginer qu'il quitte le site et qu'il ne reviendra pas une seconde apres...
 
mais bon, me manque les connaissance... pour l'instant je vais faire comme ça (page php qui contient le compteur et qui redirige vers le home etc...) et puis si le besoin s'en fait sentir je me tournerais vers ces solutions...
 
merci a vous  :jap:

Reply

Marsh Posté le 20-02-2004 à 21:58:23    

Une session a une durée de vie de 30 minutes ou plus selon la configuration du serveur. En voyant ton problème, ça me semble le seul moyen efficace, et assez pratique en plus.
Faut pas oublier d'ouvrir la session sur toutes les pages, et c'est tout simple

Reply

Marsh Posté le 21-02-2004 à 07:26:57    

salut,
moi je compte les visites que de ceux qui entrent par login comme ça je suis sur que c'est des vrais visiteurs du site et pas des cliqueurs fous. ;)

Reply

Marsh Posté le 21-02-2004 à 07:29:10    

Au fait tu sais que tu peux faire ton fichier en lecture/ecriture c'est plus rapide à traiter.

Reply

Marsh Posté le 21-02-2004 à 10:10:29    

ah bon plus rapide ? dans quel sens ? paske bon, là, meme si c'est lent, je m'en satisfait...:D

Reply

Marsh Posté le 21-02-2004 à 22:26:25    

bein pas grand chose, juste que lire un fichier, le fermer pour y écrire à nouveau comme tu fais, ça peut se réduire à lire et écrire en une seule fois, regarde le mode d'ouverture fichier en "lecture/écriture" si ça te dis...sinon y a toujours moyen d'optimiser un site.

Reply

Marsh Posté le 21-02-2004 à 22:26:25   

Reply

Marsh Posté le 21-02-2004 à 22:29:37    

Au je me souviens avoir fait un truc en php pour lire l'ip d'un visireur et compter son passage, tu enregistre l'ip dans un fichier.

Reply

Marsh Posté le 21-02-2004 à 23:03:25    

ah ouai ok...
thx  :jap:


Message édité par PixelShader Man le 21-02-2004 à 23:03:35
Reply

Sujets relatifs:

Leave a Replay

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