Multiples compteurs de clic (ajax-php) : problème gestion données clic

lolo34140 - 11 déc. 2012 à 14:16
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 - 11 déc. 2012 à 17:32
Bonjour,

Je souhaite intégrer sur mon site internet des compteurs de clics qui enregistrent chaque clic effectué sur différents thumbnails (ou image ou autres...).

J'ai trouvé un code permettant de bien compter les clics cependant je n'arrive pas à le transformer pour pouvoir gérer plusieurs compteurs indépendant sur une même page.
Mon problème est que je ne sais pas comment gérer les valeurs à écrire et à incrémenter dans le fichier txt (ou autre type de fichier) via le code php pour plusieurs identifiants (un identifiant par compteur).

Je pense que ça ne doit pas être trop compliqué mais étant donné que je suis débutant dans le domaine, je rame...
Cela fait 3-4 jours que je cherche désespérément une solution. Tous les compteurs de clic que j'ai trouvé sur internet marchent uniquement avec un seul compteur.

Voici mes codes :


pour le compteur-click.js :
ar http; // Notre objet XMLHttpRequest
 
function createRequestObject()
{
    var http;
    if(window.XMLHttpRequest)
    { // Mozilla, Safari, ...
        http =  new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    { // Internet Explorer
        http = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return http;
}
 
function gestionClic()
{
    http = createRequestObject();
    http.open('get', './compteur/compteur.php5', true);
    http.onreadystatechange = handleAJAXReturn;
    http.send(null);
}
 
function handleAJAXReturn()
{
    if(http.readyState == 4)
    {
        if(http.status == 200)
        {
            document.getElementById('nbr_clics').innerHTML = http.responseText;
        }
        else
        {
            document.getElementById('nbr_clics').innerHTML = " N/A ";
        }
    }
}


pour le compteur.php5 :
<?php
    sleep(1);
 
    $nbr  = 1;
 
    $str = @file_get_contents('./clickcount.data');
    if($str !== FALSE)
        $nbr = unserialize($str)+1;
 
    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");
 
    echo $nbr;
 
    file_put_contents('./clickcount.data', serialize($nbr));
?>


pour le index html qui affiche la valeur du compteur:

2 réponses





<?php
    $str = @file_get_contents('compteur/clickcount.data');
    if($str !== FALSE)
        echo unserialize($str);
    else
        echo 0;
?> Views



0
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
11 déc. 2012 à 17:32
Bonjour,

J'avouerai ne pas avoir tous lus, mais si j'ai bien compris votre essentiel problème serait d'adapter un des compteurs de clic que vous avez trouvé de sorte a ce qu'il puisse être exploiter plusieurs fois au lieu d'une seule.

Je ne sais pas comment est structuré votre fichier .txt mais regardez du côté de JSON, il est très utile pour faire communiquer plusieurs valeures entre PHP et AJAX.
0
Rejoignez-nous