Bonjour,
Pour m'exercer j'ai crée un compteur de visiteur unique qui se base sur l’adresse IP.
Ce dernier enregistre dans $IP la valeur de $_SERVER['REMOTE_ADDR'] pour ensuite chercher la valeur dans le fichier IP_visiteur.txt. Si ce dernier n'est pas présent alors le fichier compteur.txt est crée s'il n'existe pas et dans tout les cas sa valeur est incrémenté de 1. Ensuite la valeur d'$IP va s'enregistrer sur une ligne dans IP_visiteur.txt.
Sinon (il y a l'IP dans IP_visiteur.txt) le fichier compteur.txt est juste lu pour pouvoir dans tout les cas afficher une phrase avec ce nombre dans un echo.
Cependant je rencontre un problème, si je visite une fois la page j'ai bien 1 visiteur, les fichiers compteur.txt et IP_visiteur.txt sont bien crée s'ils n'existent pas et là où est le problème c'est qu'à la deuxième visite le fichier compteur.txt au lieu d'avoir comme valeur 2 (pour la seconde visite) il aura 12, puis 1212 après X refresh (mais pas assez pour avoir normalement cette valeur).
Je suppose donc que mon code a un problème de sémantique, mais où ? Le voici :
Une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 // Écrit l'IP du visiteur dans un fichier texte pour vérifier si visite unique // // Ouverture du fichier IP_visiteur.txt en lecture et en écriture, création si inexistant $readIP = fopen ("IP_visiteur.txt", "a+"); // Lecture du contenue de $readIP avec fgets et écriture dans variable $visitIP $visitIP = fgets ($readIP); // Rajouter nombre si ne fonctionne pas, voir ci-dessous $IP = $_SERVER['REMOTE_ADDR']; if(stristr($visitIP, $IP) == FALSE) { $fp3 = fopen ("compteur.txt", "a+"); $visitNum = fgets ($fp3, 11); $visitNum = $visitNum + 1; fseek ($fp3, 0); fputs ($fp3, $visitNum); // Écriture de l'IP dans IP_visiteur.txt fputs ($readIP, $IP); fputs ($readIP, "\n"); fclose($fp3); } else { $fp3 = fopen ("compteur.txt", "r"); $visitNum = fgets ($fp3, 11); fclose ($fp3); } echo 'Votre addresse IP est ' .$IP. ' et il y a eu ' .$visitNum. ' visiteur(s) unique(s).';
Cordialement, Koshie






Répondre avec citation

Partager