[RESOLU] Compteur de pages

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Compteur de pages

Re: Compteur de pages

par dom1706 » 16 déc. 2020, 17:09

@Spols, un tout grand merci à toi. Tu m'as mis sur la voie. C'était bêtement un problème de chemin !!!!
Tout fonctionne maintenant. Grand merci.
Je remercie également chaleureusement @Ryle et je ne manquerai pas de faire évoluer ce petit projet.
Belle journée à tout le monde.

Re: Compteur de pages

par Spols » 16 déc. 2020, 09:13

n'oublie pas d'adapter ton chemin vers le fichier de compatge selon le dossier dans lequel tu te trouve

si tu as cette structutre
/index.php
/bassin/index.php
/bassin/compteur.txt

tu accedera à ton compteur depuis /bassin/index.php comme ceci 'compteur.txt"
mais depuis index.php "bassin/compteur.txt"

Re: Compteur de pages

par dom1706 » 15 déc. 2020, 23:16

Bonjour Ryle et merci des précieux conseils !!

Dans la page 'bassin', le compteur 'visiteur.txt' ne s'incrémente pas (je lui ai bien donné les droites en lecture/écriture: 666) malgré que je rafraîchisse la page avec CTRL F5 ou depuis un autre ordinateur...

2ème chose qui me laisse perplexe: dans la page index.php du répertoire 'bassin', j'obtiens ceci : Nombre de visiteurs : 1 (même si je rafraîchis la page).
Par contre, sur la page récapitulative (qui se trouve à la racine avec le sous-répertoire 'bassin' et tous les autres), j'obtiens la valeur "0" pour le compteur bassin...

Je ne vois vraiment pas où pourrait se trouver l'erreur!

Bien le bonsoir à tout le monde.
Dominique,

Re: Compteur de pages

par Ryle » 15 déc. 2020, 19:18

Oui ton code est correct (personnellement je ne mettrais pas de second paramètre à fgets() pour ne pas limiter la lecture aux 8 premiers caractères, ça pourrait être problématique quand tu atteindras le 100.000.000 visiteur :) (oui, ben on sait pas à l'avance combien de personne viendront visiter ton bassin ! :p)

Pour la page récap, il suffit juste de faire :
<?php
$myfile = fopen("bassin/visiteurs.txt", "r");
echo fgets($myfile);
fclose($myfile);
?>
Pour chacun des fichiers compteur que tu veux ouvrir et consulter.

Tu peux aussi faire un tableau contenant la liste de tes fichiers et boucler dessus :
<?php
$compteurs = array (
  'Bassin' => 'bassin/visiteurs.txt'
  , ...
);
foreach ($compteurs as $name => $path) {
   ...
}
?>
Ou même parcourir l'arborescence de ton serveur en quête des fichiers visiteurs.txt, mais commence peut-être simplement ;)

Re: Compteur de pages

par dom1706 » 15 déc. 2020, 18:31

Merci à or 1 de sa réponse mais j'ai bien peur que m'aventurer dans Python ne me fasse rater la Noël cette année :-)
Grand merci en tout cas.
Dominique,

Re: Compteur de pages

par dom1706 » 15 déc. 2020, 18:29

Bonjour Ryle et merci.
Tu dis :
Ton code créer un fichier dans lequel il va lire le compteur et le mettre à jour. Cela fonctionne pour une page et il te faut donc utiliser un autre nom de fichier pour la page suivante, sinon celle-ci viendrait écraser le compteur de la première. Pour ta page récap, il te suffit alors d'ouvrir chacun des fichier en lecture seule pour aller y chercher le nombre de visites de la page concernée.
Est-ce que le code que j'ai mis au-dessus est bien correct pour lire le compteur de la page 'bassin' ou il y a encore plus simple ?
J'avais déjà mis un autre nom de fichier pour les autres pages.
Mais c'est dans la page récapitulative que je m'emmêle les pinceaux.
Je n'ai hélas plus "joué" avec PHP depuis quelques années et je le sens grrr
Merci de votre aide.
Dominique,

Re: Compteur de pages

par Ryle » 15 déc. 2020, 18:05

Salutations !

La base de données et effectivement plus simple à manipuler et évite sans doute quelques soucis, mais tu peux aussi passer par des fichiers.

Ton code créer un fichier dans lequel il va lire le compteur et le mettre à jour. Cela fonctionne pour une page et il te faut donc utiliser un autre nom de fichier pour la page suivante, sinon celle-ci viendrait écraser le compteur de la première. Pour ta page récap, il te suffit alors d'ouvrir chacun des fichier en lecture seule pour aller y chercher le nombre de visites de la page concernée.

Pour éviter d'avoir un fichier par page, tu peux aussi enregistrer une structure plus complexe dans le fichier avec un tableau associatif par exemple (page1 => X, page2 => Y ...). En lisant le fichier pour mettre à jour le compteur de la page2, il faudrait lire le tableau dans le fichier pour chercher sa valeur actuel et mettre à jour le tableau avec la nouvelle valeur. C'est un peu plus compliqué à gérer (surtout s'il y a risque que plusieurs pages soient consultées en même temps), mais l'avantage, c'est que tu n'as qu'un seul fichier à consulter ensuite.

La meilleure solution est peut être donc d'avoir une table dans une base de données. Tu pourrais y insérer le nom de la page et la valeur du compteur, et lire l'ensemble des enregistrements quand tu veux la consulter (tu peux même les trier via la requête). Tu pourras également le faire évoluer plus facilement si tu veux un jour avoir le nombre de vue par jour ou par mois, il suffit de rajouter une colonne date dans ta table...

Bref, plein de façons de le faire, reste à voir ce qui te branche en fonction de ton temps, ton envie, étouétou :)

Et un joyeux esprit de noël à vous aussi, avec des chocolats chauds et des petits rennes qui courent autour du sapin ;)

Re: Compteur de pages

par or 1 » 15 déc. 2020, 18:02

pas forcément besoin de mysql.

lire le contenu d'un fichier json avec :
https://www.php.net/manual/fr/function. ... ntents.php
decoder le json avec :
https://www.php.net/manual/fr/function.json-decode.php

s'il y a une entrée pour la page en question, incrémenter le nombre de visites
sans entrée, ajouter une entrée pour la page en question avec 1 comme nombre de visites

https://www.php.net/manual/fr/function.json-encode.php
pour récupérer une chaine à partir du tableau
https://www.php.net/manual/fr/function. ... ntents.php
pour écraser le fichier avec le contenu mis à jour

Re: Compteur de pages

par dom1706 » 15 déc. 2020, 17:50

Bonjour et bon pelletage ! ;-)

J'ai déjà essayé plusieurs fois et même sans BDD comme ici:

Code : Tout sélectionner

<?php // Ouverture du fichier "visiteurs.txt" $path = "bassin/visiteurs.txt"; $file = fopen($path,"r+"); // Récupération du nombre de visiteurs $nbvisiteurs = fgets($file,8); if ($nbvisiteurs=="") { $nbvisiteurs=0; } // Enregistrement du nouveau nombre de visiteurs dans "visiteurs.txt" $nbvisiteurs++; fseek($file,0); fputs($file,$nbvisiteurs); // Fermeture du fichier "visiteurs.txt" fclose($file); // Inscription sur la page du nombre de visiteurs echo "Nombre de visiteurs : $nbvisiteurs"; ?>
et cela fonctionnait (si j'ai bonne mémoire) pour cette unique page mais quand j'ai voulu afficher la page qui récapitule le tout, ça foirait ;-)

Je dois m'y prendre mal à mon avis et il y a certainement de faire cela plus proprement (comme tu le préconises) avec PHP/MySQL ...

Et vive l'esprit de Noël !

Dominique,

Re: Compteur de pages

par j_saisrien » 15 déc. 2020, 17:35

Re-salut

Eh bien, c'est super compliqué. Il va te falloir apprendre au moins trois langages de programmation, en plus du php. Et un peu d'allemand et de japonais avec ça.

Mais non je plaisante, c'est pas très original. Il faut juste enregistrer les informations dans une base de données.

En gros, les informations collectées par le petit code espion "pages vues" sont entrées dans une base de données. Par la suite ces infos sont rassemblées sur une seule page à l'aide de requêtes à ton serveur préféré. Tout se passe dans la bonne humeur, la joie et l'esprit de Noël.

Je te laisse travailler la dessus car je dois aller pelleter mon entrée.
a+

Re: Compteur de pages

par dom1706 » 15 déc. 2020, 17:05

Est-ce que tu parles de "pages vues" ou autre chose ? Car moi j'ai un système sur mon site qui s'apparente à ce dont tu fais allusion. Chaque visite d'une page est comptabilisée et j'ai une autre page qui détaille le nombre de "pages vues" sur chacune des pages. Ça permet de voir d'un coup d'oeil ce qui s'est passé sur le site.
Bonjour et grand merci à toi de la réponse.
C'est tout à fait ce que je recherche. Chaque page chargée et donc vue est comptabilisée et je dois avoir une autre page qui comptabilise toutes les pages vues.
Bonne journée.
Dominique,

Re: Compteur de pages

par j_saisrien » 15 déc. 2020, 16:40

Salut Dominique

Est-ce que tu parles de "pages vues" ou autre chose ? Car moi j'ai un système sur mon site qui s'apparente à ce dont tu fais allusion. Chaque visite d'une page est comptabilisée et j'ai une autre page qui détaille le nombre de "pages vues" sur chacune des pages. Ça permet de voir d'un coup d'oeil ce qui s'est passé sur le site.

a+

Compteur de pages

par dom1706 » 15 déc. 2020, 15:11

Bonjour à tout le monde,

Je sais que les compteurs de pages ne sont plus du tout à la mode mais j'en ai besoin pour un besoin spécifique que voici:
J'ai plusieurs pages en html5 et je voudrais que chacune de ces pages ait un compteur.
Le but final étant d'avoir une page_index affichant simplement les compteurs de toutes ces pages html.

. Comment puis-je faire en PHP pour placer un compteur sur chaque page ?
. Comment puis-je avoir la page (page_index) résumant tous les compteurs ?

J'ai déjà essayé en mettant des bouts de code retrouvés sur le net dans chaque page individuelle mais lorsque je (re)charge la page_index, les compteurs s'incrémentent sur celle-ci alors que les pages individuelles n'ont pas été ouvertes ...

En vous remerciant d'avance.
Dominique,