[PHP] - Insertion d'un compteur de visite

Répondre
Avatar du membre
LM2I_Laurent
Administrateur - Site Admin
Messages : 279
Enregistré le : jeu. 27 août 2009 17:00

[PHP] - Insertion d'un compteur de visite

Message par LM2I_Laurent »

Insertion d'un compteur de visite:

Le code à insérer sur chaque page:

Code : Tout sélectionner


<?php include('compteur_page.php?id_agence=26');?>

code de la page 'compteur_page.php':

Code : Tout sélectionner

<?php
$db = @mysql_connect("", "utilisateur", "passe");
@mysql_select_db('compteur',$db); 
// Recherche si le visiteur est déjà dans la base de données pour ce jour
$query = "SELECT ip, date, nbpage, id_agence FROM  `cpt_visiteur` WHERE ip='".$_SERVER['REMOTE_ADDR']."' AND date='".date("Y-m-d")."' AND id_agence = $idAgence ";
$req = @mysql_query($query) or die('Erreur : '.mysql_error() . email_erreur($query,  mysql_error() , $myfichier ));
//  Si il n'y est pas
if( @mysql_num_rows($req) == 0 ){
//  Ajoute son IP et la date de visite dans la base de donn?es
   $query = "INSERT INTO cpt_visiteur (ip, date, nbpage, id_agence) VALUES('".$_SERVER['REMOTE_ADDR']."', '".date("Y-m-d")."','1', $idAgence)";
   $req = @mysql_query($query) or die('Erreur : '.mysql_error() . email_erreur($query,  mysql_error() , $myfichier ));
}else{
//  Sinon incrémente son nombre visite 
$data = @mysql_fetch_array($req); 
$data[2]++;
$query = "UPDATE cpt_visiteur SET nbpage='".$data[2]."' WHERE ip='".$_SERVER['REMOTE_ADDR']."' AND date='".date("Y-m-d")."' AND id_agence = $idAgence ";
   @mysql_query($query) or die('Erreur : '.mysql_error() . email_erreur($query,  mysql_error() , $myfichier ));
} 
$aryDateMaintenant = explode("-",date("d-m-Y"));
$annee = $aryDateMaintenant[2];
$mois = $aryDateMaintenant[1];
//  Recherche si la page a déjà été visitée 
$query = "SELECT page, nbr, mois, annee, id_agence FROM `cpt_page` WHERE page='".$myfichier."' AND mois=$mois AND annee=$annee AND id_agence=$idAgence AND ip='".$_SERVER['REMOTE_ADDR']."'";
$req = @mysql_query($query) or die('Erreur : '.mysql_error() . email_erreur($query,  mysql_error() , $myfichier ));
//  Si elle a déjà été vu
if( mysql_num_rows($req)!= 0 ){ 
//  Incrémente le nombre de visite de cette page 
$data = @mysql_fetch_array($req); 
$data[1]++; 
$query = "UPDATE cpt_page SET nbr='".$data[1]."' WHERE page='".$myfichier."' AND mois=$mois AND annee=$annee AND id_agence=$idAgence AND ip='".$_SERVER['REMOTE_ADDR']."' ";
   @mysql_query($query) or die('Erreur : '.mysql_error() . email_erreur($query,  mysql_error() , $myfichier ));
}else{ 
//  Sinon ajoue la page à la base de données 
$query = "INSERT INTO cpt_page (page, nbr, mois, annee, id_agence, ip) VALUES('" . $myfichier . "','1', $mois, $annee, $idAgence, '".$_SERVER['REMOTE_ADDR']."')";
   @mysql_query($query) or die('Erreur : '.mysql_error() . email_erreur($query,  mysql_error() , $myfichier ));
} 
?>


Cr?ation MySQL:

Code : Tout sélectionner


CREATE DATABASE `'compteur'` ;


#
# Structure de la table `cpt_page`
#

DROP TABLE IF EXISTS `cpt_page`;
CREATE TABLE `cpt_page` (
  `page` varchar(75) NOT NULL default '',
  `nbr` int(11) NOT NULL default '0',
  `mois` int(11) NOT NULL default '0',
  `annee` int(11) NOT NULL default '0',
  `id_agence` bigint(9) unsigned NOT NULL default '0',
  `ip` varchar(20) NOT NULL default '0.0.0.0'
) TYPE=MyISAM;
# --------------------------------------------------------

#
# Structure de la table `cpt_visiteur`
#

DROP TABLE IF EXISTS `cpt_visiteur`;
CREATE TABLE `cpt_visiteur` (
  `ip` varchar(20) NOT NULL default '',
  `date` date NOT NULL default '0000-00-00',
  `nbpage` int(11) NOT NULL default '0',
  `id_agence` int(20) NOT NULL default '0'
) TYPE=MyISAM;
# --------------------------------------------------------

#
# Structure de la table `phpbb_agence`
#

DROP TABLE IF EXISTS `phpbb_agence`;
CREATE TABLE `phpbb_agence` (
  `id_agence` bigint(9) unsigned NOT NULL auto_increment,
  `agence` varchar(150) NOT NULL default '_',
  `ville` varchar(100) NOT NULL default '_',
  `cp` int(5) NOT NULL default '0',
  PRIMARY KEY  (`id_agence`)
) TYPE=MyISAM;
dans notre exemple, nous gerons des visites de clients identifi?s par un id_agence


@+
Laurent
Image
Webmaster
http://www.lm2i.fr
http://www.lm2i.eu

Image Image Image Image
.
Répondre