OVH Cloud OVH Cloud

Compteur de click

3 réponses
Avatar
plop
Bonjour,

je suis noob en php mais j'ai un site en cors de construction. Je dois
suivre le nombre de click sur différents éléments; notamment le nombre
de fois qu'un fichier a été téléchargé ou le nombre de fois qu'un lien
en dehors de mon site est demandé.

Je ne sais pas si c'est possible en php. Je pense que oui. Je sais que
c'est faisable en javascript mais je ne connais pas ce langage et les
exemples que j'ai vu restent abscons pour moi.

Merci de votre aide

Nico

3 réponses

Avatar
(¯`·..Yttrium ...·´¯)
Le 19/01/2005 12:47, plop nous disait:
Bonjour,

je suis noob en php mais j'ai un site en cors de construction. Je dois
suivre le nombre de click sur différents éléments; notamment le nombre
de fois qu'un fichier a été téléchargé ou le nombre de fois qu'un lien
en dehors de mon site est demandé.

Merci de votre aide

Nico



Bonjour,

Pour suivre les clicks sur certains "objets" de mon site,voici ma méthode:
Chaque click sur un objet à surveiller ouvre une page intermédiaire.
Dans cette page je fais un appel à ma fonction de compteur , la fonction
"tracking " :

<?
tracking("table_liens_externes",$_GET[id]);
?>

Cette fonction prend en paramètre le nom dela table dans laquelle est
stocké l'objet à suivre et l'ID de l'objet.
La fonction est la suivante:

<?
function tracking($table,$id)
{
//Definition de la table et de la clef en fonction du type de //tracking
if($table=="groupes")
{
$field="click_groupe";
$key="id_groupe";
}
elseif($table=="tracks")
{
$field="click_track";
$key="id_track";
}
elseif($table=="albums")
{
//etc, etc
}
else die("Erreur de tracking");
$req_track=mysql_query("SELECT $field FROM $table WHERE $key='$id'");
$res_track=mysql_fetch_object($req_track);
$actuel_track=$res_track->$field;
$nouveau_track=$actuel_track+1;
$req_maj_track=mysql_query("UPDATE $table SET
$field='$nouveau_track' WHERE $key='$id'");
}
?>

Voila..
Il y a probablement plus performant, mais chez moi ca marche trés bien
comme cela.
Si quelqu'un a d'autres propositions elles seront les bienvenenues..

Salut

--
------------------------------------------------------------------------------
(¯`·..Yttrium ...·´¯)
Soyez curieux, Ouvrez vos oreilles : http://www.anothersounds.com
Pour me répondre en privé: Passez un coup de balai
------------------------------------------------------------------------------

Avatar
plop
(¯`·..Yttrium ...·´¯) wrote:
Bonjour,

Pour suivre les clicks sur certains "objets" de mon site,voici ma méthode:
Chaque click sur un objet à surveiller ouvre une page intermédiaire.
Dans cette page je fais un appel à ma fonction de compteur , la fonction
"tracking " :

<?
tracking("table_liens_externes",$_GET[id]);
?>



Je comprends le coup de la page intermédiare, mais je ne vois pas ou est
le fait qu'elle soit intermediare. Tu mets que la fonction "tracking"
dans cette page? Cette fonction ne fait que loguer les actions non?

Voila..
Il y a probablement plus performant, mais chez moi ca marche trés bien
comme cela.
Si quelqu'un a d'autres propositions elles seront les bienvenenues..


Entre temps j'avais pensé à une solution à base de page intermédiare
(comme toi) genre "forward.php?user=toto&link=http://the.super.link.com"
avec forward.php:

<?
log($_GET['user'],$_GET['links']);
header("Location: $_GET['links]");
?>

Je ne comprends pas comment tu fais sans cette derniere ligne.


En tout cas merci de ta reponse.

Nico

Avatar
Guillaume Bouchard
(¯`·..Yttrium ...·´¯) wrote:

<?
tracking("table_liens_externes",$_GET[id]);
?>


<?php

error_reporting(E_ALL);
?>

You have a problem ! Gna Gna Gna id n'est pas une constante

--> $_GET['id'];

Merci.

$req_track=mysql_query("SELECT $field FROM $table WHERE
$key='$id'");
$res_track=mysql_fetch_object($req_track);
$actuel_track=$res_track->$field;
$nouveau_track=$actuel_track+1;
$req_maj_track=mysql_query("UPDATE $table SET
$field='$nouveau_track' WHERE $key='$id'");


Hum, ca c'est beau

$sql = "UPDATE $table SET $field = $field + 1 WHERE $key = '$id'";
mysql_query($sql) or die(mysql_error());

C'est pas mieux ?

--
Guillaume.