<?php
error_reporting(0);
/*****************************************************************************************
                           Artiphp 2.0.0 - module Compteur Visite
               copyright : Ronald Guérin - webmaster@artiloo.com
                            http://www.artiloo.com
						module Compteur Visite réalisé par Mymy
                      Dernière mise à jour : 27 février 2004
******************************************************************************************/

/*****************************************************************************************
 Artiphp, portail CMS pour la création de sites dynamiques

 Copyright (C) 2003 Ronald Guérin - webmaster@artiloo.com

 Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
 conformément aux dispositions de la Licence Publique Générale GNU, telle que publiée
 par la Free Software Foundation ; version 2 de la licence, ou encore (à votre choix)
 toute version ultérieure.

 Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ;
 sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION A UN OBJET PARTICULIER.
 Pour plus de détail, voir la Licence Publique Générale GNU .

 Vous devez avoir reçu un exemplaire de la Licence Publique Générale GNU en même temps que
 ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation Inc.,
 675 Mass Ave, Cambridge, MA 02139, Etats-Unis.

 Pour plus d'informations sur Artiphp :
 http://www.artiloo.com - webmaster@artiloo.com
******************************************************************************************/


//connection à la base
//--------------------
  include("../artzone/connect.php");

//on recupere l adresse ip du visiteur
if($_SERVER) 	{
  			if($_SERVER['HTTP_X_FORWARDED_FOR'])
      				$adressip_compteur = $_SERVER['HTTP_X_FORWARDED_FOR'];
    			elseif($_SERVER['HTTP_CLIENT_IP'])
      				$adressip_compteur = $_SERVER['HTTP_CLIENT_IP'];
    			else
      				$adressip_compteur = $_SERVER['REMOTE_ADDR'];
  		}
 else 		{
    			if(getenv('HTTP_X_FORWARDED_FOR'))
      				$adressip_compteur = getenv('HTTP_X_FORWARDED_FOR');
    			elseif(getenv('HTTP_CLIENT_IP'))
      				$adressip_compteur = getenv('HTTP_CLIENT_IP');
    			else
      				$adressip_compteur = getenv('REMOTE_ADDR');
  		}

//on verifie si on a pas changé de jour et on recupere le chiffre du compteur
$sql="select * from ". $extension ."compteur_visite where ip='compteur'";
$res=mysql_query($sql, $link);
$ligne_compteur = mysql_fetch_object ($res);
$date_compteur = date("Y-m-d");

//on convertit l heure courante en minute d une journee
$heure_en_minute=(date("H") * 60) + date("i");

//on recupere le compteur courant et le temps t
$compteur=$ligne_compteur->compteur;
$temps_connect_ref=$ligne_compteur->time; //temps de connexion de reference
$duree_renouvellement_ref=$ligne_compteur->duree; //duree de renouvellement de reference

//on test si on a changé de jour
if ($date_compteur!="$ligne_compteur->date")
{
	//on vide toutes les addresses ip enregistrées dans la table lors du changement de jour
	$sql="delete from ". $extension ."compteur_visite where ip!='compteur'";
	$res=mysql_query($sql, $link);
	//on met a jour la nouvelle date dans la table
	$sql="update ". $extension ."compteur_visite set date='$date_compteur'";
	$res=mysql_query($sql, $link);
}

//on verifie l adresse ip du visiteur et aussi son heure de passage
$sql="select * from ". $extension ."compteur_visite where ip='$adressip_compteur'";
$res=mysql_query($sql, $link);
$ligne_compteur = mysql_fetch_object ($res);
$num_rows = mysql_numrows($res);
if ($num_rows==0)
{
	//on enregistre l adresse ip si elle est inconnue et on incremente le compteur
	$sql="insert into ". $extension ."compteur_visite (ip,time,duree) values ('$adressip_compteur','$heure_en_minute','$heure_en_minute')";
	$res=mysql_query($sql, $link);
	$compteur+=1;
	$sql="update ". $extension ."compteur_visite set compteur=$compteur where ip='compteur'";
	$res=mysql_query($sql, $link);
}
else
{
	//si l'adresse ip est connue alors verifie si sa connexion precedente est superieur a la durée
	//de renouvellement et si son heure de passage precedente incremente ou pas les connectés
	$heure_en_minute_user=$ligne_compteur->time; //on recupere l'heure de sa precedente connexion de notre connecté
	$duree_user=$ligne_compteur->duree; //on recupere l'heure de sa precedente connexion de notre connecté
	
	// on verifie si sa derniere connexion ne date pas de plus que la duree de reference
	if ($duree_renouvellement_ref*60<($heure_en_minute - ($duree_user)))
	{
		//si la duree de reference est depassé alors notre connecté est comptablisé 
		//comme nouvelle visite et on met a jour sa nouvelle heure de passage
		$sql="update ". $extension ."compteur_visite set time=$heure_en_minute,duree=$heure_en_minute where ip='$adressip_compteur'";
		$res=mysql_query($sql, $link);
		
		//on cree une ligne fictive pour pouvoir le comptabiliser dans les connectés de jour
		$adressip_fictive_compteur=$adressip_compteur.".".$compteur;
		$sql="insert into ". $extension ."compteur_visite (ip,time,duree) values ('$adressip_fictive_compteur','$heure_en_minute','$heure_en_minute')";
		$res=mysql_query($sql, $link);
		
		//et on increment le compteur de visite
		$compteur+=1;
		$sql="update ". $extension ."compteur_visite set compteur=$compteur where ip='compteur'";
		$res=mysql_query($sql, $link);
	}
	else
	{
		//on met a jour son heure de passage si elle est superieure a t
		if ($heure_en_minute>(($heure_en_minute_user)-$temps_connect_ref))
		{
			$sql="update ". $extension ."compteur_visite set time=$heure_en_minute where ip='$adressip_compteur'";
			$res=mysql_query($sql, $link);
		}
	}
    //on vérifie que le visiteur n'est pas devenu un membre ou inversement
	if (session_is_registered(SESSION_USER)) {//c'est un membre
		//on supprime les éventuels doublons de pseudo (membres d'AOL)
		$sql="delete from ". $extension ."compteur_visite where ip!='$adressip_compteur' and pseudo='$SESSION_USER' and time >= ($heure_en_minute-$temps_connect_ref)";
		$res=mysql_query($sql, $link);
		//on met à jour la ligne du visiteur
		$sql="update ". $extension ."compteur_visite set pseudo='$SESSION_USER' where ip='$adressip_compteur'";
		$res=mysql_query($sql, $link);
	}
	else {// ce n'est pas ou plus un membre
		$sql="update ". $extension ."compteur_visite set pseudo='' where ip='$adressip_compteur'";
		$res=mysql_query($sql, $link);
	}

}


//on compte le nb de connectés de la journée
$sql="select * from ". $extension ."compteur_visite";
$res=mysql_query($sql, $link);
$compteur_j=(mysql_numrows ($res))-1;

//on compte le nb de connectés
$heure_en_minute=$heure_en_minute-$temps_connect_ref;
$sql="select * from ". $extension ."compteur_visite where time>=$heure_en_minute and ip!='compteur' and pseudo=''";
$res=mysql_query($sql, $link);
$compteur_c=mysql_numrows ($res);

//on compte le nb de membres
$sql="select * from ". $extension ."compteur_visite where time>=$heure_en_minute and ip!='compteur' and pseudo!=''";
$res=mysql_query($sql, $link);
$compteur_m=mysql_numrows ($res);
//on construit la liste des membres
while ($row = mysql_fetch_array($res)) {
	$lst_membres .= "&nbsp;&nbsp;&nbsp;- ".$row[pseudo] . "<br>";
}

mysql_free_result($res);
mysql_close();
?>
