Compteur par visites et par pages

Contenu du snippet

C'est un compteur des plus simple. Il comptabilise les nombre de pages visitées par l'internaute, et il comptabilise le nombre de visites de chaques pages. Si la page n'a pas encore été visité, il ajoute son nom dans la base de données.

Pour que le code fonctionne, il faut avoir un base de données SQL nommée 'compteur' qui contient les tables suivantes :
cpt_visiteur
ip VARCHAR(20)
date DATE
nbpage INT
cpt_page
page VARCHAR(64)
nbr INT

Source / Exemple :


<?php

$db = @mysql_connect('addr_serveur','login','password');
@mysql_select_db('compteur',$db);

// Recherche si le visiteur est déjà dans la base de données
$query = "SELECT * FROM cpt_visiteur WHERE ip='".$_SERVER['REMOTE_ADDR']."' AND date='".date("Y-m-d")."'";
$req = @mysql_query($query) or die('Erreur : '.mysql_error());
// 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 VALUES('','".$_SERVER['REMOTE_ADDR']."','".date("Y-m-d")."','1')";
   $req = @mysql_query($query) or die('Erreur : '.mysql_error());
}
else
{
   // Sinon incrémente son nombre visite
   $data = @mysql_fetch_array($req);
   $data[3]++;
   $query = "UPDATE cpt_visiteur SET nbpage='".$data[3]."' WHERE ip='".$_SERVER['REMOTE_ADDR']."' AND date='".$data[2]."'";
   @mysql_query($query) or die('Erreur : '.mysql_error());
}

// Recherche si la page a déjà été visitée
$query = "SELECT * FROM cpt_page WHERE page='".$_SERVER['REQUEST_URI']."'";
$req = @mysql_query($query) or die('Erreur : '.mysql_error());
// 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='".$data[0]."'";
   @mysql_query($query) or die('Erreur : '.mysql_error());
}
else
{
   // Sinon ajoue la page à la base de données
   $query = "INSERT INTO cpt_page VALUES('".$_SERVER['REQUEST_URI']."','1')";
   @mysql_query($query) or die('Erreur : '.mysql_error());
}

// Compte combien il y a de visiteur dans la table
$query = "SELECT id FROM cpt_visiteur";
$req = @mysql_query($query) or die('Erreur : '.mysql_error());

echo @mysql_num_rows($req);  // Affiche le nombe de visiteur

?>

Conclusion :


Je suis certain qu'il y ai des amélioration à donner à ce scipt. Donc si vous en voyez faites m'en part.

A voir également

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.

Du même auteur (dark_naruto25)