Compteur de clic à l'aide d'un onclick :-)

Compteur de clic à l'aide d'un onclick :-) - PHP - Programmation

Marsh Posté le 10-06-2006 à 10:55:25    

Salut a tous !
 
Je desire incrementer un compteur de clics, mais je n'y parviens pas !
 
Mon compteur est tout simplement un champs de ma bdd. (j'ai un compteur pour chaque fiche comme ceci)
 
Et j'avais l'idée que lorsque quelqu'un cliquerais sur le lien de la fiche je metterais un onclick sur ce lien :
 

Code :
  1. onclick="javascript:window.location.href=traitement.php?idref=<?php echo $nouveautees['id_ref'];?>"


 
 
Ma page de traitement :
 

Code :
  1. <?php
  2. $requete14 = mysql_query("SELECT * FROM referencement WHERE id_ref = '$idref'" );
  3. $nouveautees2 = mysql_fetch_array($requete14)
  4.     $clic=$nouveautees2['clics'];
  5.     $clic1=$clic+1;
  6. $sqlupdate = "UPDATE referencement SET clics='$clic1' WHERE id_ref='$idref'";
  7. mysql_query ($sqlupdate) or die('Erreur SQL !'.$sqlupdate.'<br>'.mysql_error());
  8. ?>


 
Si vous avez une idée...
 
 ;)  
 

Reply

Marsh Posté le 10-06-2006 à 10:55:25   

Reply

Marsh Posté le 10-06-2006 à 15:07:11    

Pourquoi un onclick?
Tu peut pas ajouter le compteur directement à ta fiche produit?
 
Sinon, dans le onclick, ajoute à la fin:
return false;
si tu veux que le navigateur prenne en compte le changement de page sur le lien. Pas sûr que ça fonctionne correctement avec toutes les combinaisons serveur-navigateur.

Reply

Marsh Posté le 10-06-2006 à 16:35:32    

moi je veux bien l'ajouter directement a la fiche, ms je veux comptabiliser le nomble de clique qu'il y a eu sur le lien. Je vois pas comment faire sans le onclick ...

Reply

Marsh Posté le 12-06-2006 à 19:49:48    

plutot que de comptabiliser le nombre de clics sur le lien pourquoi ne pas ajouter un a ta bdd lorsque quelqun arrive sur la fiche et si tu souhaite ne comptabilisé que les visiteurs uniques utilise des cookies ou alors les sessions.


---------------
http://over-templates.c.la
Reply

Marsh Posté le 14-06-2006 à 14:50:43    

Le lien que je desire comptabiliser est un telechargement (telecharge un fichier) donc je ne peux pas faire de traitement. Ms je voudrais simplement incrementer mon compteur lorsque l'utilisateur clique sur ce lien ce doit bien etre possible nan ?


Message édité par sharck1987 le 14-06-2006 à 14:51:52
Reply

Marsh Posté le 19-06-2006 à 15:01:38    

uppp :)

Reply

Marsh Posté le 19-06-2006 à 15:08:12    

Si c'est un téléchargement, tu peut sans problème comptabiliser le nombre de téléchargements commencés:

Code :
  1. <?
  2. // là tu mets le compteur de la base de donnée
  3. // envoyer le fichier
  4. readfile("ficher.ext" );
  5. ?>

Reply

Marsh Posté le 19-06-2006 à 19:12:48    

Pour ton compteur, tu peux simplifier par :

<?php
   
$sqlupdate = "UPDATE referencement SET clics=clics+1 WHERE id_ref='$idref'";
 
mysql_query ($sqlupdate) or die('Erreur SQL !'.$sqlupdate.'<br>'.mysql_error());
 
?>

Reply

Marsh Posté le 19-06-2006 à 21:19:46    

Soit dit en passant :
Il est également possible de faire quelque chose avec le OnCLick. Il suffit d'y ajouter un peu de AJAX (XMLHttpRequest) destinné à appeler la page de traitementdu compteur de clique puis faire une redirection vers le téléchargement en question.
 
Donc réponse : Oui c'est tout à fait possible par le onClick mais ce n'est pas une bonne solution car ca réduit la compatibilité et ce n'est donc pas conseillable.
 
Comme indiqué plus haut, utilise une page qui incrémente le compteur par exemple et qui ensuite soit redirige vers le fichier à télécharger ou alors le lit pour l'envoyer au client, tout dépend en fait de la taille des fichiers.

Reply

Marsh Posté le 20-06-2006 à 10:18:43    

pour info tu peux optimiser ta requete d'increment comme cela :
 

Code :
  1. <?php
  2.       $sqlupdate = "UPDATE referencement
  3.                     SET clics=clics+1
  4.                     WHERE id_ref='".$idref."';";
  5.       mysql_query ($sqlupdate) or die('Erreur SQL !'.$sqlupdate.'<br>'.mysql_error());
  6. ?>


 
ca fais une requete select en moins  :jap:  
 

Reply

Marsh Posté le 20-06-2006 à 10:18:43   

Reply

Marsh Posté le 20-06-2006 à 11:35:32    

pratique ça. je connaissai pas. :o


---------------
http://over-templates.c.la
Reply

Marsh Posté le 21-06-2006 à 18:50:01    

nemohp grillaÿd :o

Reply

Marsh Posté le 21-06-2006 à 20:01:47    

B'soir,
 
sharck, regarde ça http://www.siteduzero.com/tuto-3-1 [...] chier.html
ça pourrait te servir pour juste stocker un nombre.

Reply

Marsh Posté le 23-06-2006 à 13:53:45    

Merci les gars je m'y mets dans la semaine :)

Reply

Marsh Posté le 23-06-2006 à 14:10:02    

Salut,
juste pour dire que le readfile() ne me semble pas une super idée j'aurais opté pour un header("Location: XXX" ); d'autant que readfile() gère les URL seulement si l'enveloppement de la fonction fopen() est activé... en clair y aura des soucis les fichiers distants si le safe-mode est activé.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed