Compteur de visiteurs uniques quotidien avec mysql.

Soyez le premier à donner votre avis sur cette source.

Vue 16 267 fois - Téléchargée 1 436 fois

Description

Comme promis, j'ai améliorer le précédent script qui n'était qu'un simple compteur en PHP avec fichier texte externe. En effet, ce nouveau compteur, qui fonctionne avec une table SQL de MySQL, compte les visiteurs uniques quotidiens d'un site web en relevant l'ip du visiteur et en la stockant dans la table. C'est donc un script très utiles pour compter avec une bonne précision, le nombre de visiteurs uniques qui fréquentent en une journée votre site.

De plus, dans le ficier compteur.php du zip, vous pouvez personnaliser l'affichage du compteur en modifiant les variables de police, taille et couleur.

Pour faire fonctionner ce script dans vos pages, faites un appel à include dans vos pages PHP :

<? include 'chemin/compteur.php'; ?>

Chemin : chemin d'accès au script dans votre FTP.

Source / Exemple :


///////// TABLE SQL //////////////
------------------------------------

    CREATE TABLE compteur
    (
    ip CHAR(25) NOT NULL UNIQUE PRIMARY KEY,
    date CHAR(10) NOT NULL,
    );

///////////////////////////////////

<?

// Définition des variables d'accès aux données.

$host = "Votre Hôte"; // Hôte : ex : localhost
$login = "Votre Login"; // Login d'accès à la base
$passe = "Votre Password"; // Password
$base = "Nom de votre Base"; // Base de données
$table = "compteur";

// On récupère la date du jour.

$now_Y = date("Y");
$now_m = date("m");
$now_d = date("d");
$date  = "$now_d-$now_m-$now_Y";

// On effectue une connection à la table

@MYSQL_CONNECT($host,$login,$passe) or die ("<font face=arial size=2><b>Impossible de tenter une connection !</b>.");
@MYSQL_SELECT_DB("$base") or die ("Connexion à la base $base impossible");

// On efface les IP qui sont "périmées" (date actuelle différente des dates précédentes)

$delete = "DELETE * FROM $table WHERE date != '$date'";
$query = "Mysql_Query($delete)";

// On effectue une recherche pour savoir si l'IP est déjà enregistrée.

$query = Mysql_Query("SELECT ip FROM $table WHERE date='$date'");

// On vérifie l'ip

if($ip != '$REMOTE_ADDR')
{

// On insère l'ip si elle n'existe pas.

$insert = "INSERT INTO $table (ip,date) VALUES('$REMOTE_ADDR','$date')";
$query = Mysql_Query($insert);

}

// On récupère la valeur du compteur

$select = Mysql_Query("SELECT ip FROM $table WHERE date = '$date'");
$compteur = mysql_num_rows($select);

if($compteur == '1' OR $compteur == '0')
{
echo "1 Visiteur.";
}
else
{
echo $compteur." Visiteurs.";
}

// On ferme la connection avec MySQL

mysql_close();

?>

Conclusion :


Attention :

Pensez bien à changer le nom de la table dans la structure de la table (CREATE TABLE nom_de_la_table) si vous avez modifié ce nom dans la variables $table du fichier compteur.php

N'hésitez pas à poster vos commentaires sur cette source et à vous rendre sur notre site à l'adresse suivante :

http://www.webmaster-debutant.com

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
2 avril 2009

juste un truc. dans ton fichier install
supprimer la derniere virgule ;) ce qui donne ceci
CREATE TABLE compteur
(
ip CHAR(25) NOT NULL UNIQUE PRIMARY KEY,
date CHAR(10) NOT NULL
);
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
4
J'attends d'avoir du temps devant moi :)
Messages postés
25
Date d'inscription
dimanche 12 mars 2006
Statut
Membre
Dernière intervention
1 janvier 2009

Alors... Qu'est-ce que t'attends ?! :p
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
4
Il faudrait surtout que je refasse tout le code... Celui est trop vieux, obsolète et pas du tout optimisé :s
Messages postés
25
Date d'inscription
dimanche 12 mars 2006
Statut
Membre
Dernière intervention
1 janvier 2009

Toute petite chose de rien du tout :

change ça :
if($compteur '1' OR $compteur '0')

en ça :
if($compteur <= '0')

;)
Afficher les 19 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.