Añadido el 07/05/2007
Una de los problemas de mostrar nuestro email de contacto en nuestra página web, es que los spiders de buscadores u otros no tan identificados (y tal vez mas maliciosos), puedan ver nuestro email en la web, y guardarlo para comercializarlo o generar bases de datos de emails.
Para solucionar esto, existen varias soluciones, la primera es utilizar una imagen para mostrar el email. Para ello creamos una imagen GIF con nuestro email, de forma que no puede ser entendido el email.
También podemos utilizar php para solucionar el problema. Para ello, veamos primero el formato de un email:
<a href="mailto:nombre@email.com">nombre@email.com</a>
Para atacar el problema, realmente lo fundamental sería ocultar la parte del enlace en sí, pero podemos ir mas lejos, y codificar todo. Para ello, empezaremos por el texto o anchor del enlace.
<?
$email = "nombre@email.com";
$email_texto = str_replace("@", " @ ", $email);
?>
Lo que hemos hecho es convertir nombre@email.com en nombre @ email.com, con lo que evitamos posibles riesgos.
Ahora ataquemos al enlace:
Para ello utilizaremos una función:
<?
function codifica($email){
$codificado = bin2hex("$email");
$codificado = chunk_split($codificado, 2, "%");
$codificado = "%" . substr($codificado, 0, strlen($codificado) - 1);
return $codificado;
}
?>
Ahora, montamos nuestro email, codificado:
<a href = "mailto:<?=codifica($email) ?>"><?=$email_texto ?></a>
Esperemos que os sea útil, recordar que solo con usar la función codifica, seria suficiente, lo de $email_texto ya es para muy paraonicos como un servidor.