IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Réaliser un compteur de clic sur un lien


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 171
    Points : 65
    Points
    65
    Par défaut [Tableaux] Réaliser un compteur de clic sur un lien
    Salut

    J'aimerais pouvoir compter le nombre de clics qu'un visiteur fait dans une iframe. Donc ma page se présente comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <div>Tu as fait X clics</div>
    <iframe src="unsite.com"></iframe>
    Donc l'iframe affiche un site et j'aimerais savoir combien de clic le visiteur à fais sur l'iframe.

    Merci.
    Klimium

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    crée une table avec un compteur et incrémente la valeur avant d'afficher le IFRAME

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 171
    Points : 65
    Points
    65
    Par défaut
    Oui mais comment faire pour que quandon clique sur un lien, ça ajoute dans la bdd ?

    Parce que j'ai mis une requete antre les balise iframe, et ça ne fonctionne pas ..

    ??

  4. #4
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Points : 256
    Points
    256
    Par défaut
    Salut,

    Tu veux incrementer ton compteur quand une personne clic sur un lien qui sera affiché dans ton iframe ?

    si c ca, tu devras utiliser plutot du javascript, et tu peux tricher en metant un onclick="increment(this)" dans ta balise iframe

    ...bon je te garantis rien, je n'ai jamais fais ca ... mais tu peux essayer

    sahid

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je propose deux méthodes :
    1. Ouverture d'un fichier avec récupération d'une donnée et l'incrémenter
    2. Insertion dans la bdd d'une données.
    A toi de voir laquelle tu souhaites réaliser. Mais dans tous les cas ce sera lors de l'appel de la page avec un passage de parametre en GET (sinon avec de l'ajax)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 171
    Points : 65
    Points
    65
    Par défaut
    Oui mais l'insertion où la mettre ?

  7. #7
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu l'as met où tu veux. Tu peux ajouter un champs compteur par exemple dans la table qui contient les configurations de ton site. C'est toi qui vois où tu veux le mettre

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 171
    Points : 65
    Points
    65
    Par défaut
    Ben oui mais comment détecter qu'il a fait les 3 clics ?

  9. #9
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je te l'ai dit....A chaque clic soit tu utilises Ajax (mais ca risque de ralentir l'ouverture de la page (ca dépend aussi du style d'ouverture) soit tu mets dans ton lien un paramète en GET qui donne le type de lien (si tu en as plusieurs) et là tu récupères le compteurs correspondant dans la base et tu incrémente de 1.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 171
    Points : 65
    Points
    65
    Par défaut
    Oui mais dans la frame, c'est un site qui ne m'appartient pas .. je peux pas rajouter une donnée dans l'url ..

  11. #11
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je vois pas en quoi c'est compliqué je t'ai donné deux methodes si 'lune ne va pas l'autre ira surement vu que c'est de l'ajax et que le onclick fera l'affaire

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 171
    Points : 65
    Points
    65
    Par défaut
    AJAX, je ne sais pas faire.
    L'autre solution, je comprends pas .. tu n'aurais pas un exemple ?

  13. #13
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Il y a plusieurs exemple pour l'ajax : AJAX

    Maintenant il faudrait tester si tu peux récupérer le onclick de l'iframe et ce même s'il est sur la page à l'intérieur de l'iframe

  14. #14
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Points : 256
    Points
    256
    Par défaut
    si tu cherches simplement à afficher dans le poste client le nombre de clics que l'utilisateur a fait dans ton iframe, un simple evenement onClick="" dans ton iframe suffira,

    maintenant si tu veux stocker ces informations dans une db, tu peux utiliser le framework jQuery qui te simplifiera la vie sur l'utilisation de l'objet httprequest(), mais c pas vraiment de l'ajax que tu vas faire...
    donc

    dans ton iframe, tu ajoutes un attribut onclick="", qui apelle une methode qu'on appellera engine()

    ta methode engine, utilisera une methode du framework jQuery, permettant l'envoi de données a un serveur de maniere asynchrone en utilisant l'objet httpRequest de javascript,

    exemple de ta fonction JS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function engin() {
    $.post("compteur.php", {add:1}, null);
    }
    ta page compteur.php,
    tu devras creer une session unique pour identifier ton utilisateur, et ensuite tu recuperes ta variable $_POST, et tu fais le traitement php nécessaire pour l'ajouter dans ta db

    j'espere que ca pourra t'aider

    http://www.jquery.com

    sahid

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 171
    Points : 65
    Points
    65
    Par défaut
    Merci

    Je comprends .. a moitié
    Juste le truc Jquery que je comprends pas .. notions d'anglais pas assez évoluée
    et aussi les deux lignes là :

    tu devras creer une session unique pour identifier ton utilisateur, et ensuite tu recuperes ta variable $_POST, et tu fais le traitement php nécessaire pour l'ajouter dans ta db

  16. #16
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 215
    Points : 256
    Points
    256
    Par défaut
    jQuery, c'est un framework javascript qui va t'aider a envoyer en temps reel a ton serveur, qu'un clic a été fait dans ton iframe.

    ensuite je pensais que pour tes statistiques dans ta db, tu aurais voulu peut etre identifier pour chaque utilisateur le nombre de clic qu'il a fait sur quel site de ton iframe ... et tt et tt lol (;

    donc en reflechissant, tu peux utiliser pour identifier un utilisateur unique, son adresse ip.

    donc en debut de page tu recuperes l'adresse ip de l'utilisateur, que tu passes en parametre dans ta methode javascript engin(),

    donc ta nouvelle methode devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function engin(ip) {
        $.post("compteur.php", {add:1, user_ip:ip}, null);
    }
    ensuite dans ta page compteur.php
    tu recuperes
    $_POST['add'] et $_POST['user_ip']

    tu as la tout ce qu'il te faut pour creer des statistiques dans ta db, tu peux recuperer l'heure du clic, le pays du client grace a son ip, tu peux meme modifier ta methode javascript engin() et lui ajouter le nom du navigateur de la personne ...

    j'oubliais, si tu veux que l'utilisateur ait un apercu du nombre de clic qu'il a fait tu peux modifier ta methode engin de cette maniere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function engin(ip, navigateur) {
        $.post("compteur.php", {add:1, user_ip:ip, user_nav:navigateur}, function(xml) {
            // resulstat en xml, ca c du vrais AJAX
            var result = [
    				"Vous avez cliqué : ",
    				$("clic", xml).text(),
    				" fois"
    			];
                // affichage du resultat dans une div avec id="resultat"
                $("#resultat").html(result.join(''));
       } );
    }

    maintenant ton fichier compteur.php, devra retourner un resultat en xml.
    Donc a la fin du traitement de ta db,
    tu places une entete xml et tu affiches le resultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        $xml = "<msg><clics>$nbClics</clics></msg>";
        header('Content-type: text/xml'); 
        echo $xml;
    bon, en gros c un peu le principe que j'ai dans ma tete, je te garantis pas que tout fonctionne comme sur des roulettes (;

    sahid

Discussions similaires

  1. Compteurs de clics sur des liens
    Par F@bien.fd dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 22
    Dernier message: 19/11/2014, 23h31
  2. [PHP-JS] Incrémenter compteur avec clic sur lien
    Par Bydouille dans le forum Langage
    Réponses: 5
    Dernier message: 12/11/2007, 16h32
  3. Compteur de clics sur lien en dur
    Par renaud26 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/06/2007, 10h53
  4. [JSP] Réaliser un traitement après clic sur un lien donné
    Par Ataman dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 25/06/2006, 10h42
  5. Changement d'un background d'un td via un clic sur un lien
    Par klaas dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2005, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo