begin process at 2012 05 27 20:55:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > WD_COUNTER

WD_COUNTER


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Niveau :Initié Date de création :03/11/2004 Date de mise à jour :05/12/2004 12:30:18 Vu :3 394

Auteur : webdeb

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Le code présent ci-dessous vous permet de réaliser à la fois un compteur de hits (pages vues totales) et un compteur de visiteurs uniques quotidiens. La reconnaissance des visiteurs se fait grâce à l'ip stockée dans une table SQL et grâce au cookie créé qui ne se détruit ou se remplace lorsque l'on change de jour.

Source

  • ############################################
  • #
  • # TABLE SQL A CREER DANS VOTRE BASE DE DONNEES
  • # INSEREZ EGALEMENT LA LIGNE CI DESSOUS
  • #
  • # CREATE TABLE compteur (
  • # comptage INT(9) NOT NULL,
  • # date DATE NOT NULL DEFAULT '0000-00-00',
  • # ip_adresse VARCHAR(15) NOT NULL DEFAULT '000.000.000.000'
  • # );
  • #
  • # INSERT INTO `compteur` (`comptage`,`date`,`ip_adresse`) VALUES ('0','0000-00-00', 'comptage');
  • ###################################################
  • <?php
  • ##################################
  • #
  • # COMPTEUR POWERED BY
  • #
  • # Webmaster-Debutant.net
  • # Le 01/11/2004
  • #
  • ##################################
  • //--------------------------------------
  • // DEFINITION DES VARIABLES
  • //--------------------------------------
  • # Connection au serveur SQL
  • $wd_host = "Votre_Hôte";
  • $wd_login = "Votre_Login";
  • $wd_passe = "Votre_Password";
  • $wd_base = "Votre_Base";
  • $wd_table = "compteur";
  • # Date du jour + expiration du cookie + adresse ip du visiteur
  • $date = date("Y-m-d");
  • $expire = time()+(3600*24);
  • $ip_visitor = $_SERVER['REMOTE_ADDR'];
  • $temps = time();
  • //----------------------------------------
  • // CONNECTION AU SERVEUR SQL
  • //----------------------------------------
  • $connexion = mysql_connect($wd_host,$wd_login,$wd_passe)
  • OR die ("Serveur Down !");
  • $select_db = mysql_select_db($wd_base,$connexion)
  • OR die ("Selection impossible de la base !");
  • //--------------------------------
  • // SCRIPT DE COMPTAGE
  • //--------------------------------
  • # Incrémentation du compteur de hits totaux
  • $maj_hits = mysql_query("UPDATE ".$wd_table." SET comptage = comptage+1, date = '".$date."' WHERE ip_adresse='comptage'")
  • OR die("Incrémentation impossible ! ".mysql_error());
  • # On efface les enregistrements périmés (date <= $date)
  • $delete = mysql_query("DELETE FROM ".$wd_table." WHERE date != '".$date."' AND ip_adresse != 'comptage'")
  • OR die("Suppression impossible ! ".mysql_error());
  • # Test de l'existence du cookie WD_Compteur
  • if( ($_COOKIE['WD_Compteur'] != $date) || (!$_COOKIE['WD_Compteur']) )
  • {
  • # On insère les données si aucun cookie n'existe
  • $insert = mysql_query("INSERT INTO ".$wd_table." (comptage, date, ip_adresse) VALUES ('".$temps."','".$date."','".$ip_visitor."')")
  • OR die("Insertion impossible ! ".mysql_error());
  • # On créé le cookie WD_Compteur
  • setcookie("WD_Compteur",$date,$expire);
  • }
  • //---------------------------------------
  • // RECUPERATION DES VALEURS
  • //---------------------------------------
  • # On récupère la valeur du champ comptage
  • # où ip_adresse = 'comptage'
  • $recup_hits = mysql_query("SELECT comptage FROM ".$wd_table." WHERE date = '".$date."' AND ip_adresse='comptage'")
  • OR die("Selection du compteur impossible ! ".mysql_error());
  • $row = mysql_fetch_assoc($recup_hits);
  • $nbre_hits = $row['comptage'];
  • # On compte les visiteurs uniques, c'est à dire
  • # les ip enregistrées où date = '$date'
  • $recup_visiteurs = mysql_query("SELECT COUNT(*) FROM ".$wd_table." WHERE date = '".$date."' AND ip_adresse != 'comptage'")
  • OR die("Selection des visiteurs impossible ! ".mysql_error());
  • $nbre_visiteurs = mysql_result($recup_visiteurs,0);
  • //-------------------------------------------
  • // FERMETURE DE LA CONNECTION
  • //-------------------------------------------
  • mysql_close($connexion);
  • //------------------------------------
  • // AFFICHAGE DES RESULTATS
  • //------------------------------------
  • # On teste les pluriels et on affiche les résultats
  • if($nbre_hits > 1) { $s1 = "s"; } else { $s1 = "s"; }
  • if($nbre_visiteurs > 1) { $s2 = "s"; } else { $s2 = "s"; }
  • echo "<b>".$nbre_hits."</b> page".$s1." vues.";
  • echo '<BR>';
  • echo "<b>".$nbre_visiteurs."</b> aujourd'hui.";
  • ?>
############################################
#
#      TABLE SQL A CREER DANS VOTRE BASE DE DONNEES
#      INSEREZ EGALEMENT LA LIGNE CI DESSOUS
#
# CREATE TABLE compteur (
# comptage INT(9) NOT NULL,
# date DATE NOT NULL DEFAULT '0000-00-00',
# ip_adresse VARCHAR(15) NOT NULL DEFAULT '000.000.000.000'
# );
#
# INSERT INTO `compteur` (`comptage`,`date`,`ip_adresse`) VALUES ('0','0000-00-00', 'comptage');
###################################################

<?php

##################################
#
#    COMPTEUR POWERED BY
#
#    Webmaster-Debutant.net
#    Le 01/11/2004
#
##################################

//--------------------------------------
// DEFINITION DES VARIABLES
//--------------------------------------

# Connection au serveur SQL

$wd_host     = "Votre_Hôte";
$wd_login    = "Votre_Login";
$wd_passe  = "Votre_Password";
$wd_base    = "Votre_Base";
$wd_table    = "compteur";

# Date du jour + expiration du cookie + adresse ip du visiteur

$date        = date("Y-m-d");
$expire        = time()+(3600*24);
$ip_visitor    = $_SERVER['REMOTE_ADDR'];
$temps        = time();

//----------------------------------------
// CONNECTION AU SERVEUR SQL
//----------------------------------------

$connexion = mysql_connect($wd_host,$wd_login,$wd_passe)
OR die ("Serveur Down !");

$select_db = mysql_select_db($wd_base,$connexion)
OR die ("Selection impossible de la base !");

//--------------------------------
// SCRIPT DE COMPTAGE
//--------------------------------

# Incrémentation du compteur de hits totaux

$maj_hits = mysql_query("UPDATE ".$wd_table." SET comptage = comptage+1, date = '".$date."' WHERE ip_adresse='comptage'")

OR die("Incrémentation impossible ! ".mysql_error());

# On efface les enregistrements périmés (date <= $date)

$delete = mysql_query("DELETE FROM ".$wd_table." WHERE date != '".$date."' AND ip_adresse != 'comptage'")

OR die("Suppression impossible ! ".mysql_error());

# Test de l'existence du cookie WD_Compteur

if( ($_COOKIE['WD_Compteur'] != $date) || (!$_COOKIE['WD_Compteur']) )
{
    
  # On insère les données si aucun cookie n'existe

  $insert = mysql_query("INSERT INTO ".$wd_table." (comptage, date, ip_adresse) VALUES ('".$temps."','".$date."','".$ip_visitor."')")

OR die("Insertion impossible ! ".mysql_error());

  # On créé le cookie WD_Compteur

  setcookie("WD_Compteur",$date,$expire);

}

//---------------------------------------
// RECUPERATION DES VALEURS
//---------------------------------------

# On récupère la valeur du champ comptage
# où ip_adresse = 'comptage'


$recup_hits = mysql_query("SELECT comptage FROM ".$wd_table." WHERE date = '".$date."' AND ip_adresse='comptage'")

OR die("Selection du compteur impossible ! ".mysql_error());

$row         = mysql_fetch_assoc($recup_hits);
$nbre_hits    = $row['comptage'];


# On compte les visiteurs uniques, c'est à dire
# les ip enregistrées où date = '$date'


$recup_visiteurs = mysql_query("SELECT COUNT(*) FROM ".$wd_table." WHERE date = '".$date."' AND ip_adresse != 'comptage'")

OR die("Selection des visiteurs impossible ! ".mysql_error());

$nbre_visiteurs    = mysql_result($recup_visiteurs,0);

//-------------------------------------------
// FERMETURE DE LA CONNECTION
//-------------------------------------------

mysql_close($connexion);

//------------------------------------
// AFFICHAGE DES RESULTATS
//------------------------------------

# On teste les pluriels et on affiche les résultats

if($nbre_hits > 1) { $s1 = "s"; } else { $s1 = "s"; }
if($nbre_visiteurs > 1) { $s2 = "s"; } else { $s2 = "s"; }

echo "<b>".$nbre_hits."</b> page".$s1." vues.";
echo '<BR>';
echo "<b>".$nbre_visiteurs."</b> aujourd'hui.";

?>

 Conclusion

Afin de faire fonctionner ce script, vous devez :

1) Créer la table SQL dans votre base de données
2) Insérer la 1ere ligne (requête INSERT INTO) dans votre table
3) Remplir les variables de connection (wd_host,wd_login...)
4) Uploader le script que vous avez enregistré sous compteur.php (par exemple) avec un logiciel type Bloc Note de Windows
5) Vous rendre à la page : http://www.votresite.com/compteur.php pour le tester

PS : Ce script a été mis à jour le 05/12/2004. La structure de la table a été modifiée suite à un petit bug décelé lors de l'enregistrement de la même ip depuis deux postes différents (exemple : réseau d'un lycée ou tous les postes ont la même ip). En effet, seul le premier PC qui se connectait avait accès au site alors que les autres avaient une erreur à cause de l'attribut UNIQUE qui se trouvait dans la structure de la table SQL.


 Historique

05 décembre 2004 12:27:18 :
05 décembre 2004 12:30:18 :

 Sources du même auteur

Source avec Zip [PHP5][CLASSE] GÉNÉRATION DE FLUX RSS 2.0
GÉNÉRATION RÉCURSIVE D'UNE ARBORESCENCE DE RÉPERTOIRES
Source avec Zip Source avec une capture [POO] PHP5 ATOM GENERATOR V1.0
Source avec Zip WD_RSS_GENERATOR
Source avec Zip Source avec une capture WD_SHOOTBOX_V3

 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

Commentaires et avis

Commentaire de Anthomicro le 03/11/2004 11:58:55

Salut :-)

Bon c'est un peu de pinaillage, mais je remplacerais ça :


echo "<b>".$nbre_hits."</b> page".$s1." vues.";
echo '<BR>';
echo "<b>".$nbre_visiteurs."</b> aujourd'hui.";

par ça :

echo '<b>',$nbre_hits,'</b> page',$s1,' vues.<br /><b>',$nbre_visiteurs,'</b> aujourd'hui.';

a ++

Commentaire de webdeb le 03/11/2004 14:56:52

Oh le pinaillage !

J'ai bien le droit de choisir comment je concatène ma chaîne. lol.

Je préfère le point à la virgule. Je ne sais pas pourquoi mais c'est comme ça. lol.

Commentaire de Anthomicro le 03/11/2004 15:18:09

Bah oui c'est bien ce que je dis, mais bon après tu fais comme tu veux bien entendu ;-)

Par contre les 3 echo c'est quand même inutile :-)

a ++

Commentaire de webdeb le 03/11/2004 15:27:28

Je préfère en mettre 3 plutot que tout dans un echo, pour mieux structurer.

Je me repère mieux comme ça qu'avec un echo long de 200 caractères. ^^

Commentaire de Inekman le 04/11/2004 19:12:37

J'ai pas regardé en profondeur, mais en survolant le code il y'a pas mal de truc qui m'intéresse.

Et les points forts de ton code, ce sont  les commentaires qui aide beaucoup à la compréhension de la chose.

Merci d'avance, c'est du beau travail.

Inekman.9/10.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales