Anti SPAM : crypter une adresse email sur un site web HTML

  • Auteur de la discussion Auteur de la discussion sim100
  • Date de début Date de début
Bonjour
Quels sont les solutions pour cripter une adresse email sur un site web en HTML ?

Y a t-il un petit Javascript ou autre pour cela?

Merci pour les solutions.
 
http://aspirine.org/emailcode.php

ou en PHP:

Code:
function encodeEmail($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;
}
 
Moi j'ai l'habitude d'engluer l'email dans un petit Flash.
C'est moins sophistiqué, les visiteurs sans flash ne peuvent la voir, mais c'est une technique comme une autre...
 
Outre le formulaire qui permet de cacher l'email, il y a aussi une fonction javascript très simple, et qui marche très bien en ce qui me concerne.

dans la partie head de votre page collez (et adaptez) le bout de code suivant :
Code:
<script type="text/javascript">
	function mail(str){
		window.location.href="mailto:" + str + "@" + "mon-domaine.com";
	}
</script>
Vous remplacez bien sûr mon-domaine.com par votre domaine...
Ensuite dans votre code html, pour faire apparaitre un lien mailto :
<a href="javascript:mail('webmaster')">nous contacter</a>

Pour l'exemple ci-dessus, le lien "nous contacter" renvoie vers l'email webmaster@mon-domaine.com.
Ainsi l'email n'apparait pas en clair dans la source.
 
Une solution simple mais efficace en PHP :

Code:
/* Encodage d'email pour contrer le spam */
// Transforme les caractères de l'email en équivalent ASCII dans le code source
function emailEncode($email) {
	$email_encode = '';
	$nb_caractere = strlen($email);
	for		($a = 0; $a < $nb_caractere; $a ++) {
			$ord = ord(substr($email, $a, 1) );
			$email_encode .= '&#'.$ord.';';
			}
	return $email_encode;
}
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut