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 :

Crypter les adresses mail dans une chaine


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 48
    Points
    48
    Par défaut Crypter les adresses mail dans une chaine
    Bonjour,

    J'aimerais utiliser une fonction a chaque fois que j'affiche du contenu sur mon site et qui va me chercher dans une chaine de caractères toutes les adresses email qu'elle contient et qui ensuite va me les crypter (function secure_email) (afin de lutter contre le spam).

    Source du code : http://www.manakor.org/the-best-way-...s-from-spyders

    Code : 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
    20
    21
    22
    23
    24
    25
    26
    function tep_rewrite_email($content) {
    	  //PROTEGER l'ADRESSE EMAIL
    	  function secure_email($email, $name=NULL) {
    		   $email = preg_replace("/\"/","\\\"",$email);
    		   if($name == null)
    				   $name = $email;
    		   $old = "document.write('<a href=\"mailto:$email\">$name</a>')";
    		   $output = "";
    		   for ($i=0; $i < strlen($old); $i++) {
    			$output = $output . '%' . bin2hex(substr($old,$i,1));
    		   }
    		   $output = '<script type="text/javascript">eval(unescape(\''.$output.'\'))</script>';
    		   $output.= '<noscript><div>Il faut javascript activé pour voir l\'email</div></noscript>';
    		   return $output;
    	  }
     
    	  $email_patt = '([A-Za-z0-9._%-]+)\@([A-Za-z0-9._%-]+)\.([A-Za-z0-9._%-]+)';
    	  $mailto_pattern = '#\<a[^>]*?href=\"mailto:\s?' . $email_patt . '[^>]*?\>[^>]*?<\/a\>#';
    	  $rewrite_result = '\\1@\\2.\\3';
     
    	  $content = preg_replace($mailto_pattern, $rewrite_result, $content);
    	  $content = preg_replace('#' . $email_patt . '#', secure_email($rewrite_result), $content);
     
    	  // remember to add return here
    	  return $content;
    }
    Voici ce que cela donne, j'ai malheureusement un petit souci au niveau de l'affichage, le code m'affiche des caractères étranges sur les adresses emails :
    Un petit coup de main ou de l'aide pour trouver une meilleure fonction qui ferait le même job serait la bienvenue...

    D'avance un grand merci et salutations à tous !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    y'a le mailto:$email, donc ça sert a rien

    fait des images plutôt ou fais un [at] [dot]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 48
    Points
    48
    Par défaut
    hello,

    merci pour la réponse, non justement, je voulais rendre l'adresse accessible le plus possible...

    qu'on puisse facilement la copier depuis le site mais également conserver le lien mailto lorsqu'on cliques dessus...

    la fonction secure_email vient d'ici : http://forum.webrankinfo.com/anti-sp...ml-t57007.html
    (deuxième message)

    j'essaye donc de l'intégrer à la fonction récupérée ici : http://www.manakor.org/the-best-way-...s-from-spyders

    j'aime bien le principe de pouvoir conserver l'adresse mail en texte tel quel lors de l'affichage mais crypter en javascript la source du code.

    Si tu as d'autres idées ou propositions, je suis preneur

    D'ailleurs penses-tu que cette solution est encore "up to date" de nos jours pour lutter efficacement contre le spam ?

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    j'aime bien le principe de pouvoir conserver l'adresse mail en texte tel quel lors de l'affichage mais crypter en javascript la source du code.
    Un bot qui viendrait crawler ton site pour récupérer les emails n’exécuterait pas le JavaScript cela va sans dire.

    La seule chose que tu puisse faire c'est rendre les adresses moins lisibles par un robot.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    si il est dans ton site en claire (même si dans du javascript) c'est récupérable

Discussions similaires

  1. Remplacer les " par des \" dans une chaine
    Par jojodu31 dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 18/04/2008, 14h14
  2. Réponses: 5
    Dernier message: 17/02/2008, 10h51
  3. [PostgreSQL] [PostGreSQL] Trouver les ' et les remplacer par \' dans une chaine
    Par bossLINDROS dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/05/2007, 10h31
  4. [Mail] Comment extraire une adresse mail d'une chaine
    Par pymouse dans le forum Langage
    Réponses: 8
    Dernier message: 29/05/2006, 11h57
  5. Logiciel : Collecter les adresses mail dans les forums
    Par 123quatre dans le forum Dépannage et Assistance
    Réponses: 4
    Dernier message: 25/05/2006, 19h23

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