Pages :
(reprise du message précédent)

Rixy a écrit :
Il y aura les deux sauf si google analystics est payant.
Mais mes "clients" veulent le côté pratique et de ne pas devoir ouvrir une application.
Comme cela, ils pourront avoir le nombre de vues juste en ouvrant Firefox et en ouvrant leur site et si ils veulent des données approfondies, ils pourront ouvrir/télécharger Google Analystics... Et puis comme ça je pourrais ajouter depuis cette espace d'autres outils qui ne sont pas disponibles sur une application (interagir avec le site, prenant comme exemple signaler un commentaire même si il y en a pas mais dans l'idée ...). Enfin bref, merci pour les codes, je les essayerais plus tard. Smiley smile


https://analytics.google.com/
Modifié par vzytoi (25 May 2020 - 22:48)
Rixy a écrit :
Il y aura les deux sauf si google analystics est payant.
Mais mes "clients" veulent le côté pratique et de ne pas devoir ouvrir une application.
Comme cela, ils pourront avoir le nombre de vues juste en ouvrant Firefox et en ouvrant leur site et si ils veulent des données approfondies, ils pourront ouvrir/télécharger Google Analystics... Et puis comme ça je pourrais ajouter depuis cette espace d'autres outils qui ne sont pas disponibles sur une application (interagir avec le site, prenant comme exemple signaler un commentaire même si il y en a pas mais dans l'idée ...). Enfin bref, merci pour les codes, je les essayerais plus tard. Smiley smile


Mais évidement si tu préfères le faire toi même ce que je comprends alors bonne chance !
Modifié par vzytoi (25 May 2020 - 22:49)
vzytoi a écrit :


Mais évidement si tu préfères le faire toi même ce que je comprends alors bonne chance !


Je mettrais un système pour voir le nombre de vues sur mon site et on aura google analystics à disposition je n'ai pas dis de tout coder mais si mes clients préfèrent avoir quelques chiffre depuis le site en lui-même ...
Modérateur
Tony Monast a écrit :
Bonjour Rixy,

As-tu évalué la possibilité d'intégrer Google Analytics au lieu de développer ta propre solution? Tes administrateurs finiront par vouloir en savoir plus que simplement le nombre de clics. Ils finiront par vouloir connaître la provenance des visiteurs, les mots clés qu'ils ont utilisé dans les moteurs de recherche, le taux de rebond, la durée des visites, etc...


J'ai proposé matomo (matomo est un fork de piwik et piwik était fork de phpmyvisite). C'est une excellente alternative à google analytics. Là, je viens de tester une install sur mon serveur et apparament c'est toujours gratuit. Il doit y avoir quelques services payants (je suis allé à peine plus loin que l'installation de ce package)
Modifié par niuxe (26 May 2020 - 03:57)
Modérateur
Rixy a écrit :
Atomo est mieux que google analystics ?


Tu n'es pas dépendant du GAFAM (Google / Apple / Facebook / Amazon / Microsoft). C'est une très bonne alternative.

google analitics vs Piwik
Modifié par niuxe (26 May 2020 - 17:43)
niuxe a écrit :
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;
        // version compatible avec la ligne précédente
        // echo !empty($current_page['counter'])? $current_page['counter'] : 0;
    }catch(Exception $e){
        echo $e->getMessage();
    }
?>


J'ai réglé quelques erreurs mais cette erreur-là, je n'arrive pas à la régler : Undefined index: ./Accueil.php in C:\wamp64\www\site\Espace d'aministration\espace_admin.php on line 60

Je pense que c'est parce que j'ai laissé $_SERVEUR sur 'script_name' ; mais est-ce que localhost est un serveur car le site n'est actuellement pas en ligne et j'ai juste un "testeur de codes"
Modérateur
Rixy a écrit :


J'ai réglé quelques erreurs mais cette erreur-là, je n'arrive pas à la régler : Undefined index: ./Accueil.php in C:\wamp64\www\site\Espace d'aministration\espace_admin.php on line 60

Je pense que c'est parce que j'ai laissé $_SERVEUR sur 'script_name' ; mais est-ce que localhost est un serveur car le site n'est actuellement pas en ligne et j'ai juste un "testeur de codes"


Et l'eau,

Désolé si je ne t'ai pas répondu plus tôt. J'ai été occupé ces 2 derniers jours (livraison d'un projet)

Chez moi, aucune erreur. D'ailleurs, là je viens de mettre les directives dans le script afin d'afficher la moindre erreur. Le souci doit venir de ton architecture.

fichier fonction.php

<?php 
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    
    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);      
    }


fichiers index.php

<?php 
    try{
        header('Content-Type: text/html; charset=utf-8');
        require_once "function.php";
        $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;
        echo '<br><a href="autre-page.php">autre</a>';
        // version compatible avec la ligne précédente
        // echo !empty($current_page['counter'])? $current_page['counter'] : 0;

    }catch(Exception $e){
        echo $e->getMessage();
    }
?>


fichier autre-page.php

<?php 
    try{
        header('Content-Type: text/html; charset=utf-8');
        require_once "function.php";
        $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;
        echo '<br><a href="index.php">index</a>';
        // version compatible avec la ligne précédente
        // echo !empty($current_page['counter'])? $current_page['counter'] : 0;

    }catch(Exception $e){
        echo $e->getMessage();
    }
?>
Quand il y a marqué ça :
if($row['page'] === $_SERVER['SCRIPT_NAME']

Est-ce qu'on doit mettre le nom du serveur et de la page ?

Si on doit mettre de la page, laquelle ?

Et le serveur, si on doit écrire quelque chose à a place de "SCRIPT_NAME", dois-je mettre "localhost" o bien "wamp_serveur" ?

Merci
Pages :