le fichier json (counter.json):

[]


le fichier php (faire un include et reporter la variable):

<?php 
    function get_json($file){
        if(!file_exists($file)){
            throw new Exception("Ce fichier n'existe pas");
        }
        return json_decode(file_get_contents($file),true);
    }
    function set_json($file){
        $json = get_json($file);
        $found = false;
        foreach ($json as $index => $row) {
            if($row['page'] === $_SERVER['SCRIPT_NAME']){
                $json[$index]['counter'] = $row['counter'] + 1;
                $found = true;
                break;
            }
        }
        if($found === false){
            $json[] = [
                'page' => $_SERVER['SCRIPT_NAME'],
                'counter' => 1,
            ];
        }

        $ressource = fopen($file, "w");
        fwrite($ressource, json_encode($json));
        fclose($ressource);      
    }
    try{
        header('Content-Type: text/html; charset=utf-8');
        $file = "./counter.json";
        //récupère données
        $current_page = current(array_filter(get_json($file), function($row){
            return $row['page'] === $_SERVER['SCRIPT_NAME'];
        }));
        // ajoute 1 au compteur 
        set_json($file);
        //affiche compteur
        echo $current_page['counter'] ?? 0;
    }catch(Exception $e){
        echo $e->getMessage();
    }
?>

Modifié par niuxe (25 May 2020 - 19:12)
- Mes pages sont belles et bien faites maison.
- C'est construit principalement avec du HTML et du CSS. (photo ci-dessous).
Je penses que je vais utiliser un fichier texte de type json.
- Et pour l'instant, je n'ai rien commencé car je n'ai pas appris à faire des choses comme ça, je vous rappelle que j'ai pris seulement des cours sur la plateforme Udemy, je ne suis qu'au collège.
Pourquoi pas,

Où as tu des difficultés sur les infos fournis précédemment par chacun d'entre nous ?
Comment fonctionnent tes pages pour le moment, est ce fait maison ?
Si oui, comment est construit accueil.php par exemple ?
Comptes tu utilisé des fichiers texte (json/csv/txt/...) ou une base de donnée ?
As tu commencé quelque chose ?


Cordialement

p.s. si tu partages des codes de connexions, penses à retirer login et mot de passes.
Je peux certainement voir l'utilité de balises comme en-tête, pied de page, article, côté et même em et fort à l'occasion. Mais quelle est l'importance des balises comme abbr, blockquote, cite et def?

Il semble que vous auriez besoin d'un relecteur dédié pour parcourir toute votre copie et vous assurer que les balises sémantiques appropriées sont utilisées aux endroits appropriés.

À quel point est-il important de s'assurer que votre balisage est balisé sémantiquement autant que possible, à la fois dans un environnement professionnel et en tant que développeur en herbe qui construit des projets pour un portefeuille?
Bonjour,

comment procèdes tu actuellement pour ouvrir ton menu au clic ?
Parce que je constate un comportement différent entre la version mobile et desktop.

Après pour te répondre brièvement, il te suffit en js de détecter un clic sur le bouton de ton menu.
Si ton menu possède la classe "menu-open" (ou n'importe quel autre nom de classe) alors tu supprimes cette classe, sinon tu l'ajoutes.

Bon courage dans ton dev ! Smiley cligne
Modifié par Raphi (25 May 2020 - 16:32)
Jean-Pierre-Bruneau a écrit :
Désolé, mais en aucun cas Ajax ne fait de refrech justement c'est son but !, je supposes qu'étant modérateur tu dois savoir au moins cela non ?
Et Json est un fourre-tout en fait du javascript compilé ... pourquoi s'embarquer sur ce terrain.
Rixy , si tu veux je peut te coder ça vite fait à prés tu adaptera ... as-tu un URL ?


Tu n'as pas lu ce que j'ai écris. Imagine le scénario suivant Smiley cligne :
- je clique sur le lien
- la nouvelle page se charge
- je fais une requête ajax.....

Donc 2 requêtes !

Quand au json, c'est nettement mieux si tu as plusieurs pages. Parce qu'un fichier texte pour savoir où est la donnée de telle page et ensuite mettre à jour la donnée, bonne chance ! Le fichier json a ses limites bien sûr. Si le site est volumineux, ça vaut pas le coup. La base de données est le mieux. Par contre , pour quelques pages le fichier plat sera plus rapide ! Au passage, le json n'est pas fait que pour le JS. C'est un format d'échange de données.


[
    {
        "page": "mon/url/une-page.php",
        "compteur": 3
    },
    {
        "page": "mon/url/une-autre-page.php",
        "compteur": 1
    },
]


Le principe est simple :
- avant le chargement de la page, (dans le controller) vérifier que la page existe dans le json. Si telle est le cas, on ajoute à la valeur de la clef 1 sinon, on initialise un compteur pour cette page.

@Rixy: Sinon, au lieu bricoler un compteur de visite, j'ai de suite pensé à ceci (il y a une version gratuite, enfin j'espère...). Avant, c'était Piwik et avant Pixik c'était phpmyvisite.
Modifié par niuxe (25 May 2020 - 15:34)
Bonjour,

Apparemment tu as une base de données dans laquelle tu peut stockées tes données, je m'appuierais la dessus pour commencer.

Il te suffit d'un champs où stocker un entier positif par page/uri que tu souhaites suivre et éventuellement filtrer le compteur sur l'IP du visiteur (ne pas compter les admins logués par exemple) dans le temps (compté une nouvelle visite 24 heures aprés la dernieres)

Si tu ne souhaites pas filtrer les IP et un compteur flatteur vite fait, mal fait et pas pro, il y a fopen avec un fichier txt :un exemple ici -> https://www.php.net/manual/fr/function.fopen.php#37553 (peut servir tout au plus d'exemple en attendant de développer quelque chose de plus efficient.)

Cdt
Bonjour niuxe. Merci pour ta réponse.
En fait, ce que je veux faire, c'est que les "clients" peuvent voir les stats du site en tant qu'administrateurs. Ils veulent surtout savoir combien de personnes ont cliqués sur le lien pour aller à l’accueil, sur la page réservations ...
C'est pourquoi j'ai organisé une page exprès pour eux, avec leurs propres mots de passe. Je voulais organiser ça comme ceci :
nombre de clics sur :
accueil :(nombre)
la région : (nombre)
etc

donc il faudrait pouvoir voir les statistiques du site d'une autre page qui seraient affichées sur encore une autre page (combien il y a eu de clics sur intelle page et renvoyer la valeur sur une autre page).
Merci @niuxe
PapyJP a écrit :
La balise &lt;audio&gt; est comme la balise &lt;img&gt;, le fichier à lire est indiqué dans l'attribut src
Il suffit donc en javascript de remplacer le contenu de src
Voir https://developer.mozilla.org/fr/docs/Web/HTML/Element/audio et https://www.w3schools.com/jsref/prop_audio_src.asp

Ah oui tout y est et même pour un débutant (ce que n'est pas notre Ami Smiley cligne ), il y a matière à bien dominer ce sujet !
Et l'eau,

Jean-Pierre-Bruneau a écrit :

Il faut obligatoirement avoir PHP et MySQL.


Non, tu n'es pas obligé d'avoir MySql. Un simple fichier JSON peut faire l'affaire !

Jean-Pierre-Bruneau a écrit :
Si tu veux contrôler les actions sur une page il vaut mieux opter Pour Ajax.


Non, puisqu'on peut controller ça avant l'envoie de la vue. Parce que de toute manière il y aura un refresh. Donc si tu utilises de l'Ajax, ça fera en tout double requêtes :
- une requête pour afficher la vue
- une requête pour mettre à jour le compteur de visite.

@Rixy : c'est pour afficher sur chaque page ou c'est pour tes stats ? Est ce que ton site à beaucoup de vues (je ne parle pas de visiteur mais du nombre de pages) ? Ta partie admin, est elle faite avec un outil ? Si oui, lequel ?
Modifié par niuxe (25 May 2020 - 11:21)
Peux tu expliquer ce que tu veux faire, aucun robot de référencement ne pourra suivre cela ???
Ce qui est bien c'est si tu as plein de pages sur ton site web, c'est d'opter pour un fichier genre index param.
un haut de page commun et un bas de page !
Ainsi toutes tes pages n'auront que leur contenu !

Autre point inutile de contrôler tes pages !!
juste dans ton .htaccess

ErrorDocument 404  http://www.TONSITE.com/index.php  
25 Dernières réponses