IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

compteur de visites


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 8
    Par défaut compteur de visites
    Bonjour,

    je suis en train de faire un compteur de visites mais il ne fonctionne pas..
    Voici se qu'il met :


    Les Statistiques


    •3 visites dont
    •hier;
    •0 aujourd'hui;
    •fois affichées.
    Or il devrait y avoir qu'une visite, hier 0 visites aujourd'hui 1 et 3 fois la pages affichées..

    Voici le code php :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <?php
     
    /*
    * Si le fichier où l'on stock,
    * les données n'existe pas encore
    * on le crée.
    */
    $fichier = 'pages/stats/.htcompteur';
    if( !file_exists($fichier) ) {
    $fp = fopen($fichier, "w");
    fwrite($fp, serialize(array()));
    fclose($fp);
    }
     
    /*
    * Définition de variables
    * nécessaire au compteur :
    * - deux termes constants,
    * - l'ip du visiteur,
    * - la date et l'heure.
    */
    $argument_visites_total = 'visites';
    $argument_visites_hier = 'visiteshier';
    $argument_visites_aujourdhui = 'visitesaujourdhui';
    $argument_pages_vue = 'pages_vue';
    $ip = $_SERVER['REMOTE_ADDR'];
    $time = date('YmdGis');
     
    /*
    * Récupération des données du
    * compteur précédemment stockées.
    */
    $lignes = file($fichier);
    $donnees = unserialize($lignes[0]);
     
    /*
    * Pour chaque clés du tableau de données
    * qui ne soit pas attribuée aux visite et aux requêtes
    * si la valeur correspond à une date antérieur
    * au même jour, on supprime l'ip du visiteur.
    */
    foreach( $donnees as $cle => $valeur )
    {
    if( substr($valeur, 0, 8) != substr($time, 0, 8) && $cle != $argument_visites_total && $cle != $argument_page_vues ) 
    {
    	$donnees[$argument_visites_hier] = $donnees[$argument_visites_aujourdhui];
    	$donnees[$argument_visites_aujourdhui]=0;
    	unset($donnees[$cle]);
    }
    }
    /*
    * On incrémente ( ajoute +1 ) la valeur
    * du nombre de requêtes.
    * Si l'ip n'est pas encore enregistrée,
    * on incrémente la valeur du nombre de visites
    * et on ajoute l'ip dans le tableau accompagné
    * de la date et de l'heure de l'exécution.
    */
    $donnees[$argument_pages_vue]++;
    if( !$donnees[$ip] ) {
    	$donnees[$argument_visites_total]++;
    	$donnees[$argument_visites_aujourdhui]++;
    	$donnees[$ip] = $time;
    }
     
    /*
    * On effectue un petit report de variable
    * pour une utilisation ultérieur plus aisée.
    */
    $nb_visiteurs = $donnees[$argument_visites_total];
    $nb_hier = $donnees[$argument_visites_hier];
    $nb_aujourdhui = $donnees[$argument_visites_aujourdhui];
    $nb_pages_vue = $donnees[$argument_pages_vue];
     
    /*
    * On stock le tableau dans le fichier de données
    * en écrasant sa valeur précédente.
    */
    $fp = fopen($fichier,"w");
    fwrite($fp, serialize($donnees));
    fclose($fp);
     
    ?>
    Se que ça enregistre :

    a:5:{s:7:"visites";i:3;s:13:"86.192.222.88";s:14:"20100405130959";s:11:"visiteshier";N;s:17:"visitesaujourdhui";i:0;s:9:"pages_vue";i:1;}
    Je ne comprends pas pourquoi ça ne fonctionne pas..

    Pouvez-vous m'aider ?

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as un micmac de "pages_vue" et de "page_vues" au lieu d'ailleurs d'avoir partout "pages_vues".

    Quand tu developpes, affiche toutes les erreurs.

    Sinon je trouve ton code très alambiquée pour pas grand chose.
    En particulier ce foreach.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. compteur de visites de site
    Par kephrem dans le forum Langage
    Réponses: 1
    Dernier message: 05/03/2006, 22h42
  2. Compteur de visite
    Par dj-julio dans le forum Langage
    Réponses: 5
    Dernier message: 31/01/2006, 10h20
  3. [Sécurité] compteur de visites en php
    Par stanley dans le forum Langage
    Réponses: 2
    Dernier message: 23/10/2005, 16h47
  4. Compteur de visites
    Par linou dans le forum Outils
    Réponses: 2
    Dernier message: 13/07/2005, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo