Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2012, 15h16   #1
Candidat au titre de Membre du Club
 
Inscription : août 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 92
Points : 14
Points : 14
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 :
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 !
link.80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h48   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 247
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 247
Points : 8 632
Points : 8 632
y'a le mailto:$email, donc ça sert a rien

fait des images plutôt ou fais un [at] [dot]
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/01/2012, 15h58   #3
Candidat au titre de Membre du Club
 
Inscription : août 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 92
Points : 14
Points : 14
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 ?
link.80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 16h43   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 018
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 3 018
Points : 5 081
Points : 5 081
Citation:
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.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 18h12   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 247
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 247
Points : 8 632
Points : 8 632
si il est dans ton site en claire (même si dans du javascript) c'est récupérable
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h34.


 
 
 
 
Partenaires

Hébergement Web