Compteurs de clics

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 928 fois - Téléchargée 29 fois

Contenu du snippet

Via ce cours vous allez apprendre a réaliser votre propre compteur de clic.
Suivez bien les instructions du cours et NE COPIEZ SURTOUT PAS LE CODE ! Écrivez-le !
Nous allons ici prendre l'exemple d'un script gérant des partenaires.

Source / Exemple :


Fichier de création de table:

CREATE TABLE partenaires (
id int(20) DEFAULT '0' NOT NULL auto_increment,
nom char(250) NOT NULL,
url char(250) NOT NULL,
clic char(50) NOT NULL,
PRIMARY KEY (id)
);

Fichier de configuration:

<?
$host="localhost"; // Votre hote ( ex chez free : sql.free.fr )
$login="root"; // Votre login
$mdp=""; // Votre mot de passe
$base="dn"; // Le nom de votre base de donnée ( ex chez free : c'est votre login )
?>

Fichier qui affichage les partenaires:

<?
require('cfg.inc.php'); // Ici cfg.inc.php est votre fichier de configuration
mysql_connect($host,$login,$mdp); // Connexion à la base
mysql_select_db($base); // Connexion à la base de donnée

$sql='select id,nom,url,clic from partenaires ORDER by nom'; // Requete sql qui affiche le nom du partanaire et son nombre de clics. Vous pouvez également jeter un coup d'oil sur clause "ORDER BY" qui va vous classer par ordre alphabétique les partenaires.

$req=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // On active la requete sql

while ($data=mysql_fetch_object($req)) // On fait une boucle et on récupère les valeurs
{
echo'<a href="clic.php?id='.$data->id.'" target="_blank">'.$data->nom.'</a> ·</font><br>';
}
mysql_close(); // On ferme connexion à la base
?>

Fichier qui met à jour la bdd et qui dirige le navigateur vers le site du partenaire:

<?
require("cfg.inc.php"); // Ici cfg.inc.php est votre fichier de configuration
mysql_connect($host,$login,$mdp); // Connexion à la base
mysql_select_db($base); // Connexion à la base de donnée

mysql_query("UPDATE partenaires SET clic=clic+1 where id='$id'"); // On met à jour notre table via la requête UPDATE ; SET permet de définir le champ et et la clause WHERE nous indique quel ligen ( id ) de la table nous allons incrémenter

$query=mysql_query("SELECT url FROM partenaires WHERE id='$id'"); // Ici on choisit l'url en fonction de l'id

$url=mysql_fetch_row($query); // On récupère les données

header("location:$url[0]"); // On affiche la page

mysql_close(); // On ferme connexion à la base

?>

Voila :) c'est finit ! Comme vous le voyez, c'est tous simple.. Vous pouvez bien évidement adapter ce script à d'autres styles de compteur mais aussi le perfectionner en rajoutant les fonctions suivantes: details du partenaires, formulaire pour écrire à tous les partenaire sen même temps, gérer des statistiques...

Conclusion :


Sur ce,
Bonne ProG !

A voir également

Ajouter un commentaire

Commentaires

Messages postés
200
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
19 août 2009

cette source fonctionnais tres bien au début quand je l'ai utilisée... maintenant j'ai vu avec ton message: il n'a pas sa place ici.

enfin voila @+
Messages postés
10
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
23 juin 2010

où est-ce que tu as vu que je proposais de supprimer cette source ?
j'ai simplement dit que je considerais qu'elle n'avait pas sa place ici.

Je suis tombé dessus en cherchant "compteur de clics" sur google ou une requete similaire.
Je trouve dommage qu'un débutant copie la premiere source qu'il trouve, puisque mal codée à mon gout.
Messages postés
200
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
19 août 2009

tu postes un commentaire pour dire de supprimer une source qui est ici depuis plusieurs années, si il aurait fallut la supprimer, sa aurait du se faire avant, le code a été testé et fonctionne, c'est pas parce que t'aime pas le mysql_fetch_row qu'il faut automatiquement proposer de supprimer la source...

c'est quoi sa...
Messages postés
10
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
23 juin 2010

Moi je suis contre ce genre de script qui ne vérifie rien avant de passer à l'action.
Le $id il sort d'où ?

La plupart des hébergeurs désactivent register_globals.

Après il faut être partisant du mysql_fetch_row.
Perso je ne comprends pas pourquoi utiliser cette fonction, mysql_fetch_assoc est tellement plus compréhensible quand on relit le code.

Dernière remarque : il est normal que le code ci-dessus ne fonctionne pas, puisque la table proposée est vide.
Ce serait peut etre bien de vérifier si l'id existe avant de faire quoi que ce soit, sinon le header('location:...'); ne va pas renvoyer bien loin...

Je déconseille donc ce code, il n'a pas sa place ici.
Messages postés
13
Date d'inscription
mardi 17 août 2004
Statut
Membre
Dernière intervention
17 octobre 2004

pour nico606:
-----------------

n'oublie pas que le fichier de configuration avec les donnees pour la bdd doit s'appeler 'cfg.inc.php'

pour moi maintenent:
---------------------------

quand il va sur la page clic.php?id=1 il va directement vers ma page d'erreur 404 alors que la page clic.php est bien presente tu serais m'aider stp???
Afficher les 10 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.