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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Compteurs de clics sur des liens


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut Compteurs de clics sur des liens
    Bonjour,

    Je viens de me mettre au php par nécessité. En effet j'ai décidé d'établir dans le menu d'un site le nombre de téléchargements de fichiers à partir de ce menu.
    Pour être plus clair lorsque le menu déroulant fait apparaitre les fichiers à télécharger, chacun d'eux est suivi du nombre de téléchargements dont il a profité,
    du type Fichier Machin.zip téléchargé X fois.
    Mais lorsque l'on clique sur un lien pour un nouveau téléchargement, le nombre de ce dernier n'est mis à jour qu'à la cession suivante ou si rafraichit la page.
    Quelqu'un connait-il la procédure à employer pour mettre à jour l'affichage instantanément ?

    Voici deux petits fichiers qui illustrent mon soucis...
    le premier :
    Code Demo_4.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <font face=verdana size=1><a href=clic.php?url=http://fabien.fd.free.fr/Bourse/Applications/aide_Nina.zip>Récupérer</a><br>
    Nombre de téléchargements :<?include"telechargements/http:__fabien.fd.free.fr_Bourse_Applications_aide_Nina.zip.txt"?></font>
    le second :
    Code clic.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    error_reporting(E_ALL ^ E_NOTICE);
     
    $fichier=str_replace ("/", "_", "$url"); // remplacement des caractères spéciaux dans les noms de fichiers
    $fichier="telechargements/".$fichier.".txt"; // ouvrir le fichier texte pour chaque telechargement
    if(!file_exists("telechargements"))    //  ouvrir le fichier nommé telechargements
    {mkdir("data",0755);}                  // chmoder le fichier ( permettre l'ecriture sur ceux-ci )
    if(!file_exists("$fichier")){          // si le fichier existe
    $fp=fopen("$fichier","w");             // écriture sur le fichier
    fputs($fp,"0");
    fclose($fp);}
    $fp=fopen("$fichier","r+");
    $nb=fgets($fp,10);
    $nb++;
    fseek($fp,0);
    fputs($fp,$nb);
    fclose($fp);
    Header("Location:$url");
    ?>

    merci par avance.

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Il faut utiliser l'ajax, ce qui signifie qu'un script javascript envoie un requête au serveur (basiquement à un script php qui incrémente le nombre de click) et récupère la réponse du serveur (ce que renvoie le script php: "ok, l'incrementation c'est bien passée voici la nouvelle valeur, ou pas") et en fonction de la réponse change dynamiquement le compteur sur la page, le tout sans la recharger.

    Il y a un foultitude de tutoriels sur ajax, tu devrais trouver facilement ton bonheur.

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut
    Bon ben encore de nouvelles choses à apprendre et à digérer.

    Merci pour l'information.

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut
    Bonsoir,

    J'ai installé un serveur local Wamp et j'ai testé le clic.php en local et en réel sur mes pages perso avec le test suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <font face=verdana size=1><a href=clic.php?url=image.zip>Télécharger</a><br>
    Nombre de téléchargements :<?include"telechargements/image.zip.txt"?></font>
    Quelle n'a pas été ma surprise... alors que tout fonctionne parfaitement sur les PP je reçois ce message d'erreur en local...
    La page n'est pas redirigée correctement
    Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
    De plus, le fichier image.zip.txt est correctement incrémenté sur les PP mais pas en local....

    A quoi serait due cette différence de comportement svp ?

    Merci par avance

  5. #5
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Comme tu l'as probablement deviné, c'est un problème de redirection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $fichier = str_replace ('/', '_', $url);
    ...
    header("Location: $url");
    $url n'est jamais définie dans ton script, donc le navigateur reçoit un ordre de redirection vers null. Le message d'erreur n'est pas très explicite mais ça signifie en gros « l'adresse de redirection qu'on m'a donnée n'est pas valide ».

    Dans d'anciennes versions de PHP on utilisait une option de configuration appellée register_globals qui permettait d'avoir automatiquement accès aux données de formulaire venant du client, sous la forme de variables. Cette option a été retirée car elle posait des problèmes de sécurité qui sont expliqués ici.

    Le fait que ton script marche sur ton serveur de prod signifie que celui-ci utilise une version de PHP obsolète. Essaye de corriger ça si c'est possible.

    Edit: ah bah oui tu es chez Free, j'avais pas vu. Tu as accès à la version 5.1.3 (c'est mieux que rien) si tu crées un .htaccess à la racine et que tu y mets ceci :
    Comme tu peux le voir c'est tout à fait limpide.

    Le plus simple pour faire fonctionner ton script avec une version de PHP à jour, c'est de rajouter ceci au début du code :

    PS. Je te conseille vivement d'afficher toutes les erreurs sur ton serveur de dev (WAMP).
    Ça te signalera notamment les endroits où tu utilises une variable non définie. Ce genre de signalement est de niveau E_NOTICE donc avec ton code actuel tu ne les vois pas. Comme expliqué dans les liens que j'ai mis ci-dessus, les variables indéfinies sont parfois des failles de sécurité.

    Il peut arriver que $_GET['url'] ne soit pas définie, par exemple si l'utilisateur arrive sur la page en tapant l'adresse à la main. Pour éviter une E_NOTICE dans ce cas, le plus propre est de vérifier si la donnée est présente avec la construction isset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isset($_GET['url'])) {
      $url = $_GET['url'];
    } else {
      echo '<p>Il manque l’url du fichier…</p>';
      exit;
    }
    Cela t'incite également à prévoir ce que ton script doit faire quand la donnée est absente. Dans mon exemple un petit message explicatif pour l'utilisateur et un exit qui arrête l'exécution du script.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut
    Tout d'abord grand merci pour le suivi pédagogique.

    Dans un premier temps, comme je m'initie au php depuis très peu de temps je pensais comme en prog objet que le fait d'écrire l'instruction
    permettait de transmettre directement l'adresse par valeur dans une variable notée "$url" convenue.
    Ayant parcouru des FAC sur les instructions GET et POST, je n'avais pas envisagé le problème sous cet aspect.
    Donc effectivement il faut transmettre auparavant l'adresse et tester son existence et tout fonctionne pour le mieux.

    Concernant le fichier .htaccess, j'en ai placé un à la racine de mes PP pour éviter les remontées trop curieuses et j'y ai placé l'instruction Quelle sera le rôle de l’instruction Faut-il la placer avant ou après ?

    Concernant...
    Je te conseille vivement d'afficher toutes les erreurs sur ton serveur de dev (WAMP).
    Je n'ai aucune idée de l'endroit où la placer.

  7. #7
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Ok, deux petites remarques :
    - maintenant que tu as déclaré la fonction set_error_reporting, il faut l'appeler, sinon, bah elle sert à rien.
    - attention à la lisibilité de ton code. Il y a des outils pour t'aider à le formater, PHP Beautifier n'est qu'un exemple parmi d'autres.

    Citation Envoyé par F@bien.fd Voir le message
    bien sûr, mais en fait je me suis mal exprimé, le fichier .txt est bien incrémenté, c'est l'affichage initial qui n'apparaît pas en local alors qu'il apparaît chez Free.
    Par « affichage initial » tu veux dire quand le fichier n'existe pas encore, ou bien à chaque fois que tu ouvres la page ?

    En toute logique tu as deux compteurs différents car tu as deux fichiers .txt différents : l'un se trouve sur ton WAMP, l'autre se trouve sur ton espace Free.

    Tu vas sans doute trouver quelques fichiers bizarres dans ton dossier telechargements/ sur tes pages perso, j'ai fait quelques expériences avec ton script … Je te rassure tout de suite, en éliminant les / tu empêches déjà les attaques les plus dangereuses.

    Mes expériences prouvent que ton script crée des compteurs pour des fichiers qui n'existent pas. C'est dangereux de laisser l'utilisateur créer un nombre infini de fichiers car, même vide, un fichier occupe de la place (la taille d'un bloc disque). En plus, comme tous tes fichiers sont dans le même dossier, en avoir des milliers fait gonfler l'index du dossier, et ça peut provoquer des timeouts. Si tu ralentis trop souvent le serveur mutualisé qui sert tes pages, tu risques de te prendre une sanction.

    Pour corriger ça, ajoute une vérification file_exists sur $url également. Et hop, à l'abri du mauvais temps
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut
    Encore merci pour ce suivi.
    Citation Envoyé par Watilin Voir le message
    - maintenant que tu as déclaré la fonction set_error_reporting, il faut l'appeler, sinon, bah elle sert à rien.
    - attention à la lisibilité de ton code. Il y a des outils pour t'aider à le formater, PHP Beautifier n'est qu'un exemple parmi d'autres.
    Suite à tes conseils et après la déclaration de la fonction concernée, l'erreur récurrente de redirection sur la page locale ayant disparue, je pensais donc à tort que l'appel à clic.php l'appelait automatiquement de façon transparente... donc à quel endroit dois-je l'appeler puisque à priori, l'erreure ne se reproduit plus ?
    Pour la rédaction du fichier j'utilise Notepad ++. Je vais voir voir un peu plus loin.
    Citation Envoyé par Watilin
    Par « affichage initial » tu veux dire quand le fichier n'existe pas encore, ou bien à chaque fois que tu ouvres la page ?
    Dès que j'ouvre la page en local.
    Les fichier sont immédiatement créés sans problème, mais l'affichage de l'index est inexistant même quand le fichier existe déjà.
    Chez Free pas de problème.
    Citation Envoyé par Watilin
    En toute logique tu as deux compteurs différents car tu as deux fichiers .txt différents : l'un se trouve sur ton WAMP, l'autre se trouve sur ton espace Free.
    On est d'accord là dessus. Ceux chez Free sont lus immédiatement et les résultats sont affichés d'emblée sur les pages concernées (sans rafraichissement puisque pas demandé) alors qu'en local même s'ils sont incrémentés, les valeurs qu'ils contiennent ne sont pas affichées.
    Citation Envoyé par Watilin
    Tu vas sans doute trouver quelques fichiers bizarres dans ton dossier telechargements/ sur tes pages perso, j'ai fait quelques expériences avec ton script … Je te rassure tout de suite, en éliminant les / tu empêches déjà les attaques les plus dangereuses.
    Aucun fichier bizarre, mais qu'est-ce que signifie bizarre ?
    je pense qu'il s'agit de tentative_d_injection_de_fichiers_par_Watilin_;).txt.
    Donc le script doit éliminer les /, c'est à dire les supprimer comme je l'ai fait pour http: et non simplement les remplacer par _?
    Citation Envoyé par Watilin
    Mes expériences prouvent que ton script crée des compteurs pour des fichiers qui n'existent pas. C'est dangereux de laisser l'utilisateur créer un nombre infini de fichiers car, même vide, un fichier occupe de la place (la taille d'un bloc disque). En plus, comme tous tes fichiers sont dans le même dossier, en avoir des milliers fait gonfler l'index du dossier, et ça peut provoquer des timeouts. Si tu ralentis trop souvent le serveur mutualisé qui sert tes pages, tu risques de te prendre une sanction.
    Là je ne pige pas, si j'ai quatre liens correspondant chacun à un fichier différent et que chacun est vérifié et filtré, je ne comprends pas pourquoi il pourrait y avoir un nombre de fichiers infini, il ne doit y en avoir que quatre.
    Citation Envoyé par Watilin
    Pour corriger ça, ajoute une vérification file_exists sur $url également. Et hop, à l'abri du mauvais temps
    C'est pas ce qui est réalisé avec le test de l'url ? Attention je suis débutant en php.

    J'ai réalisé le fichier de redirection qui me permettra de passer intégralement en php tout en laissant en place les pages actuelles en html.
    Testé cette nuit apparemment sans encombre.

  9. #9
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Citation Envoyé par F@bien.fd Voir le message
    […] à quel endroit dois-je l'appeler puisque à priori, l'erreure ne se reproduit plus ?
    En fait maintenant que tu me poses la question, je trouve ça inutile de déclarer une fonction pour un code qui ne doit être exécuté qu'une seule fois. Oublie donc cette fonction et exécute directement les instructions qui sont dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    switch ($_SERVER['HTTP_HOST']) {
       case 'localhost':
       case '127.0.0.1':
          // environnement de dev
          return error_reporting(-1);
          break;
       default:
          // environnement de prod
          return error_reporting(0);
    }
    Edit: j'ai supprimé les return… Sinon ça n'avait aucune chance de marcher

    Avec ça on aura peut-être enfin des indices sur ce compteur qui ne s'affiche pas.

    Je viens de voir un truc dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!file_exists('telechargements')) {
       mkdir('data', 0755);
    }
    Ça ne devrait pas plutôt être mkdir('telechargements', 0755); ? C'est tellement gros, c'est possible qu'on soit passés dessus cent fois sans voir le problème.

    Donc le script doit éliminer les /, c'est à dire les supprimer comme je l'ai fait pour http: et non simplement les remplacer par _?
    En fait peu importe, quand je disais éliminer je ne voulais pas forcément dire supprimer… L'important c'est que les / ne soient plus là

    Là je ne pige pas, si j'ai quatre liens correspondant chacun à un fichier différent et que chacun est vérifié et filtré, je ne comprends pas pourquoi il pourrait y avoir un nombre de fichiers infini, il ne doit y en avoir que quatre.
    J'ai refait quelques expériences, j'ai tapé les adresses suivantes dans mon navigateur :
    Code txt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    http://ninaperf.free.fr/clic.php?url=a
    <a href="http://ninaperf.free.fr/clic.php?url=b" target="_blank">http://ninaperf.free.fr/clic.php?url=b</a>
    <a href="http://ninaperf.free.fr/clic.php?url=c" target="_blank">http://ninaperf.free.fr/clic.php?url=c</a>
    <a href="http://ninaperf.free.fr/clic.php?url=d" target="_blank">http://ninaperf.free.fr/clic.php?url=d</a>
    <a href="http://ninaperf.free.fr/clic.php?url=e" target="_blank">http://ninaperf.free.fr/clic.php?url=e</a>

    Et j'ai été redirigé vers les adresses http://ninaperf.free.fr/a, http://ninaperf.free.fr/b, etc., ce qui signifie que le script a été jusqu'au Header qui est tout en bas, en passant forcément par les fopen. Le problème est que les fichiers a, b, etc. n'existent pas, mais un compteur est quand même créé pour chacun. Donc tant que tu me permettras d'envoyer n'importe quel paramètre url à ton script, je serai capable de créer des fichiers sur ton serveur.

    C'est pas ce qui est réalisé avec le test de l'url ? Attention je suis débutant en php.
    Non, le test vérifie simplement que le paramètre est présent.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  10. #10
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut
    Citation Envoyé par Watilin Voir le message
    En fait maintenant que tu me poses la question, je trouve ça inutile de déclarer une fonction pour un code qui ne doit être exécuté qu'une seule fois.
    ...
    Avec ça on aura peut-être enfin des indices sur ce compteur qui ne s'affiche pas.
    Ben non justement, si on supprime la fonction plus rien n'est affiché
    Citation Envoyé par Watilin
    Je viens de voir un truc dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!file_exists('telechargements')) {
       mkdir('data', 0755);
    }
    Ça ne devrait pas plutôt être mkdir('telechargements', 0755); ? C'est tellement gros, c'est possible qu'on soit passés dessus cent fois sans voir le problème.
    Si mais j'avais initialement commis une erreur dans le code transmis, en effet le code actif est bien mkdir('telechargements', 0755);, je l'avais bien corrigé mais j'ai oublié de rectifier ici.
    J'avais mis double guillemets au lieu de simple (mais dans ce cas il me semble que les deux syntaxes sont convenables), j'ai remplacé par des simples et cela n'avance pas plus.
    Citation Envoyé par Watilin
    guillemet
    En fait peu importe, quand je disais éliminer je ne voulais pas forcément dire supprimer… L'important c'est que les / ne soient plus là
    C'est bien le cas.
    Citation Envoyé par Watilin
    J'ai refait quelques expériences, j'ai tapé les adresses suivantes dans mon navigateur :
    Code txt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    http://ninaperf.free.fr/clic.php?url=a
    ...
    Et j'ai été redirigé vers les adresses http://ninaperf.free.fr/a,etc... Le problème est que les fichiers a, etc... n'existent pas, mais un compteur est quand même créé pour chacun.
    Je l'ai aussi vérifié sur tes conseils...
    Je suis redirigé vers la page Free ERREUR 404 - Document non trouvé, mais ça incrémente tout de même le compteur du fichier text.
    Là, je suis dans le potage...

  11. #11
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Citation Envoyé par F@bien.fd Voir le message
    Ben non justement, si on supprime la fonction plus rien n'est affiché
    Je comprends de moins en moins… Mets juste error_reporting(-1) pour l'instant, on verra bien ce que ça donne.

    J'avais mis double guillemets au lieu de simple (mais dans ce cas il me semble que les deux syntaxes sont convenables), j'ai remplacé par des simples et cela n'avance pas plus.
    La différence entre les deux types de guillemets est expliquée ici.

    Je l'ai aussi vérifié sur tes conseils...
    Je suis redirigé vers la page Free ERREUR 404 - Document non trouvé, mais ça incrémente tout de même le compteur du fichier text.
    Là, je suis dans le potage...
    L'idée que je proposais en fait, c'est de vérifier que l'url ne mène pas à une 404, autrement dit, qu'il y a quelque chose à cette adresse. Et pour tester ça : file_exists
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser des styles différents en fonction du clic sur un lien
    Par tahiiri dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 07/06/2009, 16h02
  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. Réponses: 1
    Dernier message: 13/05/2007, 15h34
  5. [Tableaux] Réaliser un compteur de clic sur un lien
    Par Klimium dans le forum Langage
    Réponses: 15
    Dernier message: 22/10/2006, 22h29

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