122 lines
4.8 KiB
PHP
122 lines
4.8 KiB
PHP
<?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
|
|
?>
|