Masquer une adresse mail par une image

Description

Une méthode pour empêcher les robots des spammers de récupérer une adresse mail sur votre site est de remplacer le "mailto" par une image. C'est plus efficace que les cryptages javascript. Le problème est qu'il faut créer une image pour chaque adresse. Php permet de créer automatiquement une image (png) et d'écrire un texte dans cette image. Le code proposé ici est très simple et n'a rien d'original mais il fonctionne. Il utilise la libraire php "gd2" qui permet de manipuler des images png.
il y a un fichier "creeimage.php" qui crée l'image avec le texte passé en paramètre et un fichier test.php qui montre comment s'en servir.

Source / Exemple :


//le fichier creeimage2.php qui crée les images (une seule fois) et les stocke dans un dossier
<?
//dossier où sont stockées les images (modifiable ..)
 	$dossier="codeimage/images_adresses";

//affichage d'une image png avec un texte
 function imagemail($texte){
	global $dossier; 
 	//nom du fichier png contenant l'image avec le texte $texte
	$fichier=$dossier."/".md5($texte).".png";

 	//création de l'image avec l'adresse (si ce n'a pas déjà été fait antérieurement)
 	creeimage($texte);
	echo "<img align='absbottom' src='$fichier' >";

  }

//crée une image contenant l'adresse $texte et l'enregistre sous le nom md5($texte) où md5 est une fonction de hachage
//(évite ainsi que l'adresse apparaisse en clair dans la page html sous la forme <img src='monadresse@hebergeur.fr'> )

function creeimage($texte) {

	global $dossier; 
 	//nom du fichier png contenant l'image avec le texte $texte
	$fichier=$dossier."/".md5($texte).".png";

	//on vérifie que l'image n'a pas déjà été créée dans le dossier spécifié ($dossier)
	if (file_exists($fichier)){
		return;
		}
		
	//si ce n'est pas le cas on  crée l'image
	
	// definition des dimensions
	$iWidth=strlen($texte)*6.5; 
	$iHeight=20;
	
	$oImage=imagecreate($iWidth, $iHeight);
	
	  // fond blanc
	 imagecolorallocate($oImage, 255, 255, 255);
	//choix de la police
	$iCurrentFont=2;
	//choix de la couleur du texte (noir)
	 $iTextColour = imagecolorallocate($oImage, 0, 0, 0);
	//inscription du texte dans l'imaqe
	 imagestring($oImage, $iCurrentFont, 5, 5,$texte, $iTextColour);
	  // creation de l'image et sauvegarde dans le dossier spécifié sous le nom md5($texte)
	  
	  imagepng($oImage,$fichier);
	  //libération de la mémoire vive occupée par l'image
	  imagedestroy($oImage);
  }
  
 
?>

//le fichier pour tester

<p>bonjour voilà mon adresse mail : 

  <?php 
  
  include "creeimage2.php";
  
  imagemail("alain.baeere@aol.com");
  ?>
  
  <br> et une autre adresse : 
  <?php imagemail("tot.iuyze@aol.com"); ?>

<br> 
et c'est tout

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.