Bonjour,
je suis en train de me faire un répertoire de lien.
J'aimerais compter les clics faits sur chaque lien, mais je n'y arrive pas.
Pouvez-vous m'aider?

le lien sur ma page php:

<a href="<?php echo $sites['url']; ?>" title="<?php echo $sites['titreSite']; ?>" target="_blank" onclick="visitSite('<?php echo $sites['siteId']; ?>');" class="sbutton square noshadow small green animated fadeInRight"><i class="fa fa-arrow-right"></i> Visiter ce site </a>

la fonction appelée par le "onclick" depuis le lien précédent:

    function visitSite($siteAcompter) {
        require ('gestion/conf/cnx.php');
                $sql = $DB->prepare("UPDATE sites SET visitsCount = :visitsCount WHERE siteId = :siteId" );
                    $req->execute(array(
                    'siteId' => $siteAcompter,
                    'visitsCount' => $visitsCount+1
        ));
    }

Je n'arrive pas à voir ce qui cloche...

Merci pour votre aide.

Hexa

7 réponses


Bonsoir,

Logique que cela ne fonctionne pas, vous essayer d'appeler une fonction qui n'existe pas.
La fonction que vous nous montrer est du php et celle pour le lien c'est du javascript.

Hexa
Auteur

tiens,
voilà une remarque intéressante.....
je vais entourer l'appel de ma fonction avec <?php et ?> pour voir...

Hexa
Auteur

Pas de succès! Je vais voir si monsieur Ajax peut m'aider...

Salut !

Tu es sûr que la variable $visitsCount existe ? Dans tous les cas si tu veux juste l'incrémenter tu n'en as pas besoin :

    function visitSite($siteAcompter) {
        require ('gestion/conf/cnx.php');
                $sql = $DB->prepare("UPDATE sites SET visitsCount = visitsCount + 1 WHERE siteId = :siteId" );
                    $req->execute(array(
                    'siteId' => $siteAcompter
        ));
    }

Sinon, pourquoi ne pas faire une page redirect.php qui prend l'ID en paramètre GET ?
Comme ceci : tonsite.com/redirect.php?id=23
Sur cette page tu fais ta requête SQL pour incrementer le nombre de visite puis tu rediriges vers le site. Comme ça pas besoin du onClick !

En plus avec onClick tu appelles une fonction Javascript, pas une fonction PHP…

tu ne peux pas exécuter du php comme ca.
le javascript est côté client le php côté serveur.
Tu peux faire un appel Ajax avec Jquery cela sera le plus simple.

Salut,
mets au minimum une vérification ip, sinon tu vas te faire spamer les liens ^^

Hexa
Auteur

Bon, bin à ma grande déception, je ne referais pas le monde php aujourd'hui!
Je me suis orienté vers du java pour obtenir ce que je veux.
Merci pour vos réponses.

Hexa