edito
forum (83 203)
making of
raccourcis PS
coups de coeur (6)
archives CDC (26)
bétisier (28)
plan du site
infos légales

 


 

Devenez awares ! Et essayez de survivre.




aperçu
 

 

login | logout
gérez votre profil
devenez membre
membres (7498)
annivs (2599)
awares (60)
mickeys (59)
notables (128)
modérateurs (8)
votre vie privée

 

 

amis (39)
gfx français (61)
divers (936)
pixel art (94)
illustration (117)
portails (17)
ressources (31)
flash (324)
3D (31)

proposez votre site
dernières entrées
aléatoire (1652)
quicklist
top 10






























 

 

stats publiques
infocentres
référents (8 977)
ref quicklist (8 977)
visiteurs uniques
awards

6 987 846 hits
 





uelques fois, vous pouvez être amenés à créer des compteurs particuliers ( voir tuto php - compteurs de visites ). Ces compteurs un peu plus évolués n'autorisent qu'une seule mise à jour de compteur : la première fois, le compteur est incrémenté, les suivantes il n'est plus modifié. Vous pouvez alors définir la durée pendant laquelle le compteur reste "insensible" : infinie dans le cas d'un vote ( un visiteur vote une seule fois ) ou 24 heures par exemple dans le cas de compteurs sur des sites externes ( le visiteur incrémente de 1 le compteur d'un site lors de son 1er clic, les suivants n'incrémenteront plus le compteur du site pendant les 24 prochaines heures ).


 

Prenons l'exemple sus-cité ( chaud à placer en diner un mot pareil ^^ ) d'une page de liens où un compteur doit être figé durant les 24 heures suivant un clic. Lors d'un clic, nous allons vérifier la présence d'un cookie donné. S'il n'y a pas de cookie, le compteur est incrémenté et on crée ledit cookie. Si le cookie existe, le compteur n'est pas incrémenté. Une sorte de cookie bloquant.

Le cookie a une durée de vie limitée à 24 heures. Passé ce délai, il se détruit sur le poste local et libère le compteur qui peut de nouveau être modifié.

Pour le cas d'un vote, c'est plus simple puisque le cookie a une durée de vie illimitée. Cela dit, il est plutôt recommandé alors de stocker cette information directement dans la base.

Pour la suite du tuto, je suppose que vous disposez d'une table liens contenant au moins 2 champs : l'URL du site et son COMPTEUR associé.


 

Ce traitement est fait par un fichier redirect.php qui à la fin, redirige le navigateur vers le site souhaité. L'adresse de ce site est passée en paramètre : href=redirect.php?url=http://www.site.com . Le script ressemble à ça :

<?
include ("../connexion_a_la_base.php"); // CONNEXION MYSQL
$link = mysql_connect ($host,$user,$password); // INITIALISATION DE LA CONNEXION
mysql_select_db($bdd, $link);

if ($url!="") // SI L'URL EST NON NULLE
{
   // CHERCHE L'URL DANS LA TABLE
   $req1="SELECT * from liens where url='$url'";
   $res1=mysql_query($req1, $link);
   $row1=mysql_fetch_object($res1);
   $trouve=mysql_numrows(mysql_query($req1,$link));
   // TROUVE EGALE 1 SI L'URL A ETE TROUVEE DANS LA TABLE

   // VERIFIE SI LE COOKIE EST DEJA PRESENT
   if (!isset($clic[$url]) && $trouve!="")
   {
      // CREATION DU COOKIE BLOQUANT
      SetCookie("clic[".$url."]","1",time()+3600*24); // 24 HEURES
      // RECUPERATION DU COMPTEUR
      $compteur=$row1->compteur;
      $compteur++;
      // MISE A JOUR DU COMPTEUR DANS LA TABLE
      $req2="UPDATE liens SET compteur='$compteur' WHERE url='$url'";
      mysql_query($req2, $link);
   }
   // REDIRECTION VERS L'URL
   mysql_free_result($res1);
   header("Location: ".$url);
}
?>


 

Le script de redirection est opérationnel. Il crée les cookies respectifs à chaque url et incrémente les compteurs s'il n'y a pas de cookies. Dans votre page de liens, il ne reste plus qu'à adapter vos liens pour qu'ils pointent vers votre fichier redirect.php :

<a href=redirect.php?url=http://www.graphinews.com target=_blank>graphinews</a>
graphinews

NB : ce script peut aussi se révéler très utile pour vous prémunir des risques de flood sur les parties dynamiques de votre site. A chaque nouveau commentaire par exemple, créez de la même manière un cookie à durée de vie très limitée ( 45 secondes ) qui empêchera d'insérer un autre commentaire durant ce laps de temps.

NB2 : Gardez enfin à l'esprit que si les cookies sont très pratiques, il n'en restent pas moins instables de par leur nature éphémère. Préférez toujours par exemple stocker dans la base directement le fait qu'une personne ait voté ou non parce qu'en supprimant ses cookies, elle aurait de nouveau la possibilité de voter. Les cookies ne sont donc pas redoutables d'efficacité. Simplement très pratiques


Tuto proposé par :

piregwan (sympatisant mi (..))
34 ans
piregwan_AT_piregwan.com
http://www.piregwan.com


7540 visites




 

mÖarf, 21 01 2003 à 13:29

Humpf.. y suffit de coder un minimum en PHP pour comprendre le principe de ce code ( très bon et efficace ! ! !, a la pigerwan koi ). Live Pigerwan !


mÖarf


o0o, 27 07 2002 à 09:48

c'est vriament trop redoutable ces tutoriaux php


o0o (agent invisibl (..))
37 ans (internet)
o0o_AT_piregwan.com
http://www.o0o.ch


la bidouille, 10 07 2001 à 05:16

{grr} ce site vas me faire faire des bétises {grr}


la bidouille (membre)
c.gmehlin_AT_pusherweb.com
http://www.pusherweb.co (..)


piregwan, 25 06 2001 à 13:19

aah ? lesquels par exemple ?


piregwan (sympatisant mi (..))
34 ans
piregwan_AT_piregwan.com
http://www.piregwan.com


Proskater, 25 06 2001 à 10:59

Oui mais ceci est valable pour tous les autres tutos du site!


Proskater


piregwan, 20 06 2001 à 14:31

salut ta remarque est légitime. cette technique était largement utilisée sur les liens externes de ce site, mais j'ai dû l'abandonner parce qu'elle générait beaucoup plus de cookies qu'il n'est possible d'en créer. cette technique sert idéalement à empecher un visiteur de cliquer plusieurs fois sur UNE ou QUELQUES pages mais ne se prête pas à la sécurisation de plusieurs CENTAINES de liens (max : 20 cookies par domaine). si tu cherches un moyen de protéger plusieurs liens, préfère stocker dans ta base l'adresse ip du cliqueur, c'est beaucoup plus efficace, plus rapide, plus sûr et tu pourras protéger une quasi-infinité de liens. a+


piregwan (sympatisant mi (..))
34 ans
piregwan_AT_piregwan.com
http://www.piregwan.com


( 7 commentaires )
<< 1 2 3 4 5 6 7 8 9 10 11 12 >>

 











P I R E G W A N . C O M
interface, développement & hébergement - piregwan 1998-2004




forum | infocentres | recherche | t-shirts | photos


généré en 1.103 secondes