<?php
/*
*********************************************************************
* File          : $RCSfile: Stats.php,v $
* Version	: $Revision: 1.2 $
* Modified by	: $Author: jb $ ($Date: 2002/07/24 23:34:59 $)
*********************************************************************
    Classe Stats
    v 0.20                                              28-11-2001 : refonte complete
    v 0.10 :                                           15 05 2001
    V 0.01 : NADAL Jean-Baptiste  : 17 04 2001

    Description : Cette classe permet de gérer les statistiques  du site
    elle permet d'enregistrer les entrée des visiteur avec filtrage, un meme utilisateur n'est pris en compte
    pour la meme que s'il la revisite 10 minutes apres.
*/

if ( file_exists("conf.php") )
    require("conf.php");
else
    require("./Scripts/conf.php");

class Stats
{
    // ===============================
    var $szReferenceur;
    var $szRemote_Addr;
    var $szUser_Http_Agent;
    var $szCookie;
    // ===============================
    // Constructeur de la classe de statistique
    function Stats($ref,$remote_addr,$user_http_Agent, $cook)
    {
        $this->szReferenceur=$ref;
        $this->szRemote_Addr=$remote_addr;
        $this->szUser_Http_Agent=$user_http_Agent;
        $this->szCookie=$cook;
    }

    // ===============================
    // Cette fonction Incremente la page visitée dans la base de statistique
    function IncStatPage($szNomPage)
    {
        global $sql_bdd;

        // On se connecte a la base de donnée du site
        $connect_db = jb_sql_connect(3);
       if ( $connect_db != "" )
       {
                // On recupere la date courante;
                $date  = time();

                if  ($this->szCookie != "oui" )
                {
                        if (! $this->Estdejavenu($connect_db,$szNomPage, $date) )
                        {
                                //  On incremente le compteur général
                                $num_date = $this->incCompteurGeneral($connect_db,$szNomPage, $date );
                                // Puis on increment le compteur en texte.
                                // echo "cook : $this->szCookie, $nTypeStat";
//                                echo "on increment le compteur !!!";
                                $cpt = new   Compteur(1);
                        } // fin if (! Estdejavenu($connect_db,$nTypeStat,$heure) )
                } // fin if  ($this->szCookie != "oui" )
                // On ferme la connexion avec la base de donnee
                $result = mysql_close($connect_db);
        } // Fin if ( $connect_db != "" )
    } // fin de function IncStatPage($nTypeStat)

  // ====================================================
  // Cette fonction détermine si l'utilisateur courant est deja venu sur la page $page depuis les
  // dix dernières minutes.
  // Return true si l'utilisateur est deja venu faux sinon
  function Estdejavenu($connection,$Page,$heure)
  {
        global $table_visiteur;
        global $sql_bdd;
        $bRetour = false;

        // On regarde si l'utlisateur est venu sur le site ( si son @ IP est deja enregistrée
        $resultat = mysql_db_query($sql_bdd,"select date_php from $table_visiteur where address='$this->szRemote_Addr' order by date_php desc ",$connection);

        // s'il y a une réponse, c'est que le visiteur est deja venu
        if (mysql_num_rows($resultat) > 0)
              $heureVisite = mysql_result($resultat, 0, 'date_php');
        else
              $heureVisite = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));

        //echo " date_php : $heureVisite <br> heure local : $heure<br>\n";

        // puis on regarde si le visiteur est venu depuis lz dernière heure !!
        if (( $heure - $heureVisite) > 6000)
              $bRetour =false;
        else
              $bRetour =true;

        return $bRetour;
  }

  // ====================================================
  function incCompteurGeneral($connection, $szNomPage,  $servertime )
  {
        global $table_compteur;
        global $table_visiteur;
        global $sql_bdd;

        $second = date("s", ($servertime));
        $minute = date("i", ($servertime));
        $hour = date("G", ($servertime));
        $day = date("j", ($servertime));
        $month = date("n", ($servertime));
        $year = date("y", ($servertime))+2000;
        $logdate = $year.'-'.$month.'-'.$day.' '.$hour.':'.$minute.':'.$second ;
        $remote_host  =  @getHostByAddr($this->szRemote_Addr);

        $res = mysql_query("INSERT INTO $table_visiteur (id, request, host, address, agent, date, date_php, referer, country, provider, os, wb) VALUES ('', '$szNomPage', '$remote_host', '$this->szRemote_Addr', '$this->szUser_Http_Agent', '$logdate', '$servertime','$this->szUser_Http_Agent', '', '', '', '')");

      return $id_date;
  } // fin de la fonction incCompteurGeneral()

} // Fin de la class
?>