Compteur de clics

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 630 fois - Téléchargée 29 fois

Contenu du snippet

Ceci est un compteur de clics assez simple séparé en deux parties, un fichier "download.php" qui doit être situé à la racine du site et une fonction, get_clicks() qui permet de récupérer le nombre de clics.
Je vous mets un exemple pour comprendre son utilisation :

J'ai un fichier "test.zip" dont l'adresse relative à partir de la racine est "downloads/test.zip".
Dans ma page de téléchargement, je fais un lien du genre <a href="download.php?url=downloads/test.zip">Télécharger</a>.
Pour afficher le nombre de clics associé au fichier, il suffit de faire un <?php print get_clicks('downloads/test.zip') ?>

Voilà ! J'espère que vous avez compris ! Notez que ce script et très sommaire mais il peut en éclairer certains. Vous pouvez aussi l'adapter à votre goût, car dans le cas présent, il n'accepte que les URL relatives. Il y a seulement une modification à faire (au niveau du header()) pour qu'il accapte également les URL absolues. Je vous laisse vous débrouiller !

Source / Exemple :


DÉBUT DU SCRIPT "download.php"

<?php

/* Téléchargement avec mise à jour du compteur de clics

  • ============================================================
  • Auteur : Dean
  • Version : 2.0b3 (08-12-2002)
  • ============================================================
  • /
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); $clicks_file = 'clicks/' . rawurlencode($_GET['url']) . '.txt'; // Crée le compteur s'il n'existe pas if(!file_exists($clicks_file)) fclose(fopen($clicks_file, "w")); // Incrémente le compteur $fp = fopen($clicks_file, 'r+'); $clicks = fread($fp, 9) + 1; rewind($fp); fwrite($fp, $clicks); fclose($fp); // Effectue la redirection vers le fichier header('Location: http://' . $_SERVER['HTTP_HOST'] . '/' . dirname($_SERVER['PHP_SELF']) . '/' . $_GET['url']); ?> FIN DU SCRIPT "download.php" FONCTION POUR RÉCUPÉRER LE NOMBRE DE CLICS <?php function get_clicks($file) { $clicks_file = 'clicks/' . rawurlencode($file) . '.txt'; return file_exists($clicks_file) ? join('', file($clicks_file)) : 0; } ?>

A voir également

Ajouter un commentaire Commentaires
Messages postés
42
Date d'inscription
dimanche 12 mars 2006
Statut
Membre
Dernière intervention
24 juin 2011

Effectivement, j'ai résolu le problème aprsè plusieurs tentatives infructueuses. en fait l'exemple semble être du php3 et mon easyphp est en version 4 et même 5 depuis que j'ai uploader cette version de php.
De plus je me suis acheté php5 de Stéphane MARIEL et Php5 avancé de Eric Daspet et Cyril Pierre de Geyer.
Je me convertis très vite à ce nouveau langage qui me semble très prometteur et que l'on classifie un peu trop rapidement en créateur de page Web côté serveur. Il semble pouvoir faire beaucoup plus.
Par contre la non compatibilité descendante me parait bien dommage. Un article permettant de comparer les trois versions (3, 4 et 5), en particulier pour la visibilité des variables serait le bienvenu. Il existe peut-être déjà mais le mettre en exergue éviterait aux nouveaux de se prendre la tête et surtout de penser que celui qui a posté un bout de code en 2003 n'a même pas testé.
A plus
Messages postés
500
Date d'inscription
mardi 16 avril 2002
Statut
Membre
Dernière intervention
2 août 2004

Hello,

Inclus ton fichier avant le <html>. Cela peut paraître bizarre pour un utilisateur de HTML pur, mais c'est en fait utilisé dans de nombreux scripts PHP (par exemple pour induire une compression GZip de la page...)

Cette remarque est probablement inutile puisque j'imagine que le problème a été résolu ; on progresse vite dans ce domaine. ;)
Messages postés
6
Date d'inscription
dimanche 10 novembre 2002
Statut
Membre
Dernière intervention
20 mars 2006

Alors pour ce qui est de la première erreur "connot modify header information" :
Tu ne peux pas modifier le header si tu as déjà demandé (par tes scripts) d'écrire du contenu sur la page. Il faut modifier les header (ou les définir) avant toute chose !
Ensuite seulement tu affiche des choses sur ta page.

Pour la deuxième, je en sais pas, je n'ai pas assez dinformation :=)
Messages postés
42
Date d'inscription
dimanche 12 mars 2006
Statut
Membre
Dernière intervention
24 juin 2011

Bonjour

Je suis grand débutant en plein de choses dont javascript et php.

J'ai essayé ce code tel quel.
J'ai créé avec dreamweaver une page index.php et une autre download.php (cette dernière est un copier-coller du source)

Voici index.php

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php include "download.php" ?>
</head>


[download.php?url=test.zip téléchargement]

</html>
et voici la liste des erreurs fournis en lançant index.php par easyphp

DÉBUT DU SCRIPT "download.php"
Warning: Cannot modify header information - headers already sent by (output started at d:\essai php\index.php:5) in d:\essai php\download.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at d:\essai php\index.php:5) in d:\essai php\download.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at d:\essai php\index.php:5) in d:\essai php\download.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at d:\essai php\index.php:5) in d:\essai php\download.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at d:\essai php\index.php:5) in d:\essai php\download.php on line 16

Notice: Undefined index: url in d:\essai php\download.php on line 18

Notice: Undefined index: url in d:\essai php\download.php on line 32

Warning: Cannot modify header information - headers already sent by (output started at d:\essai php\index.php:5) in d:\essai php\download.php on line 32
FIN DU SCRIPT "download.php" FONCTION POUR RÉCUPÉRER LE NOMBRE DE CLICS téléchargement


Quelqu'un peut-il m'aider malgré l'ancienneté de la source.
Merci.
Messages postés
4
Date d'inscription
vendredi 26 septembre 2003
Statut
Membre
Dernière intervention
16 juillet 2004

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');

A koi ca sert ??
Afficher les 31 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.