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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| <?php
//COMPTEUR
// Noms des variables à afficher :
//number_format($compteur,0,',',' ') => Nombre total de visiteurs
//number_format($compt_ms,0,',',' ') => Total mensuel de visiteurs
//number_format($compt_ms1,0,',',' ') => Total mois -1 de visiteurs
//$compt_j => Total jour de visiteurs
//$compt_j1 => Total jour -1 de visiteurs
//$compt_c => Nombre de connectés
//$plur_v => "s" si plusieurs connectés (fontionne avec $compt_c)
// *****Définition des variables**********
// Adresse ip du visiteur
if($_SERVER) {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif(isset($_SERVER['HTTP_CLIENT_IP']))
$adress = $_SERVER['HTTP_CLIENT_IP'];
else
$adress = $_SERVER['REMOTE_ADDR'];
}
else {
if(getenv('HTTP_X_FORWARDED_FOR'))
$adress = getenv('HTTP_X_FORWARDED_FOR');
elseif(getenv('HTTP_CLIENT_IP'))
$adress = getenv('HTTP_CLIENT_IP');
else
$adress = getenv('REMOTE_ADDR');
}
$jour = date("Y-m-d");// Date du jour
$mois = date("m");// mois
$moins=1104537600; // 01/01/2005
$heure=time()-$moins; //
// ***************
include("config.php");
$connexion = @mysql_connect($dbhost,$dbuser,$dbpass);// ******************************* Connexion à la base
if(!$connexion)
{
print "<p align=center><font face=verdana size=2><b>Connexion impossible au serveur MySQL !!</b></font></p>";
}
else
{ // SI CONNEXION OK
mysql_select_db($dbname,$connexion); //selection base
// ***** Variables de référence **********
//on recupere les donnés
$sql="SELECT * FROM $dbtable WHERE ip='compt2'";
$res=mysql_query($sql, $connexion);
$inf1 = mysql_fetch_object ($res);
$compt_j1=$inf1->compt_j;//compteur jour-1
$compt_ms1=$inf1->visite;//compteur mensuel -1
//***
$sql="SELECT * FROM $dbtable WHERE ip='compt1'";
$res=mysql_query($sql, $connexion);
$inf1 = mysql_fetch_object ($res);
$compt_j=$inf1->compt_j;//compteur jour
$compt_ms=$inf1->visite;//compteur mensuel
$compteur=$inf1->duree;//compteur total
$refer= explode("@",$inf1->refs);//on récupère le temps de visite et la durée de connexion
$t_ref=$refer[1]; // temps de visite de reference en heures
$t_ref=$t_ref*60*60;// temps de visite de reference en secondes
$datesup=$heure-$t_ref;//référence de suppression des IP
$d_ref=$refer[2]; //duree de connexion de reference en minutes
$d_ref=$d_ref*60; //duree de connexion de reference en secondes
$durée_cnt=$heure-$d_ref;//référence nb de connectés
// ***************
//on vide toutes les addresses ip > temps de visite de reference
$sql="delete from $dbtable where ip!='compt1' and ip!='compt2' and visite<=$datesup";
$res=mysql_query($sql, $connexion) or die ("requete invalide del ip");
if ($jour!="$inf1->date")//on test si on a changé de jour ************
{
$sql="update $dbtable set date='$jour' WHERE ip='compt1'";//on met a jour la nouvelle date dans la table
$res=mysql_query($sql, $connexion) or die ("requete invalide maj date");
$sql="update $dbtable set compt_j=$compt_j where ip='compt2'";//on met la valeur jour dans jour-1
$res=mysql_query($sql, $connexion) or die ("requete invalide maj date");
$compt_j=0; // remise à 0 du compteur jour
$sql="update $dbtable set compt_j=0 WHERE ip='compt1'";
$res=mysql_query($sql, $connexion) or die ("requete invalide maj date");
if ($mois!=substr($inf1->date,5,2))//on test si on a changé de mois
{
$sql="update $dbtable set visite=$compt_ms where ip='compt2'";//on met la valeur mois dans mois-1
$res=mysql_query($sql, $connexion) or die ("requete invalide maj date");
$compt_ms=0; // remise à 0 du compteur mensuel
$sql="update $dbtable set visite=0 WHERE ip='compt1'";
$res=mysql_query($sql, $connexion) or die ("requete invalide maj date");
$sql2="OPTIMIZE TABLE $dbtable";//optimisation de la table
$res2=mysql_query($sql2, $connexion) or die ("requete invalide optimize table");
}
}
// ***************
//on verifie si l'IP du visiteur et connue
$sql="select ip from $dbtable where ip='$adress'";
$res=mysql_query($sql, $connexion) or die ("requete invalide verif ip");
$num_rows =mysql_numrows ($res);
if ($num_rows==0)
{
// l adresse IP est INCONNUE on l'enregistre et on incremente les compteurs
$sql="insert into $dbtable (ip,visite,duree,date) values ('$adress','$heure','$heure','$jour')";
$res=mysql_query($sql, $connexion)or die ("requete invalide enr ip");
$compt_j+=1;
$compt_ms+=1;
$compteur+=1;
$sql="update $dbtable set visite=$compt_ms, duree=$compteur, compt_j=$compt_j where ip='compt1'";
$res=mysql_query($sql, $connexion) or die ("requete invalide up compteur M et G");
}
else
{
// l adresse IP est CONNUE on met à jour la durée
$sql="update $dbtable set duree=$heure where ip='$adress'";
$res=mysql_query($sql, $connexion) or die ("requete invalide maj duree");
}
// Calcul du nombre de connectés
$sql="select duree from $dbtable where duree>='$durée_cnt'";
$res=mysql_query($sql, $connexion) or die ("requete invalide verif ip");
$num_rows =mysql_numrows ($res);
$compt_c=$num_rows;
} @mysql_close($connexion); // ********************************** fermeture connexion
($compt_c ==1 )? $plur_v="" : $plur_v="s";//"s" si plusieurs connectés
?> |
Partager