Files
ohmj2/Scripts/Stats.php
2009-09-15 21:08:20 +00:00

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
?>