Cómo mostrar una dirección de correo electrónico para los usuarios, pero esconderse de robot? ¿Hay una forma sencilla de hacerlo usando PHP, Javascript o jQuery?

StackOverflow https://stackoverflow.com/questions/1873992

Pregunta

¿Hay una manera elegante y fácil / simple de hacer que el uso de PHP, Javascript o Jquery?

¿Fue útil?

Solución

Puede utilizar la función de PHP imagestring () para crear una imagen.

<?php
// Create a 100*30 image
$im = imagecreate(120, 30);

// White background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Write the email address at the top left
imagestring($im, 5, 0, 0, 'test@test.com', $textcolor);

// Output the image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Otros consejos

Hay muchas maneras de hacer esto. Hemos tenido suerte som ofuscar fuente a través de Python / javascript. Otro de los favoritos más simple es la técnica CSS unicode-bidi:

div.contact { unicode-bidi:bidi-override; direction: rtl; }
<div class="contact">moc.rab@oof</div>

imprime:

foo@bar.com

Es posible que desee ver en reCAPTCHA Mailhide . Debe ser fácil de usar desde PHP.

Nunca escribir direcciones de correo electrónico en forma de texto en páginas web, NUNCA!

y los robots navegador seguramente tienen JS habilitado -_-

La ofuscación utilizando entidades HTML posible más difíciles y urlencode, implementado en PHP: http://hcard.geekhood.net/encode/

Fuente: http://code.google.com/p/ hcardvalidator / fuente / browse / trunk / codificación / index.php

Otro enfoque que utilizo es:

<a href="mailto:me@myserver.removethis.com">
<script>[…] a.href = a.href.replace(/removethis\./,'');</script>

Vale la pena señalar que ambas técnicas proporcionan a los usuarios perfectamente accesible enlace, puede hacer clic.

puede intentar cambiar name@example.com a: "Nombre en ejemplo punto com".

Sin embargo, robots fácilmente pueden dar cuenta de esto.

De lo contrario, podría mostrar una imagen dinámica de la dirección de correo electrónico si usted está realmente motivado.

No es una solución perfecta, pero la Enkoder ( http://hivelogic.com/enkoder ) es bastante útil para esto. Se utiliza JavaScript para ofuscar la dirección.

Ok. Así que después de un tiempo, he encontrado este artículo de blog sobre cómo hacer esto fácilmente. http: // TechBlog .tilllate.com / 2008-direcciones diez métodos a obfuscate-e-mail en comparación / 07/20 / / Y cuánto impacto tiene que hacerse al recibir correo no deseado ..

Creo que esto podría ser complementaria a la información dada anteriormente .. Saludos!

Que este trabajo, así ??

El uso de algo como esto

<span>myaddress</span><span>@</span><span>mydomain.com</span>

Esto no va a presentarse como un vínculo, pero todavía sería reconocible por el ojo humano en una página, y probablemente cont ser analizado por un robot. No he comprobado hacia fuera, tú. Probablemente se podría insertar esa cadena en un vacío y enlazarlo a una función que compone la dirección analizando el contenido ..

Es sólo una idea rápida ...

Esto es difícil de hacer. A menos que utilice una imagen, cualquier cosa que se vuelve legible por su navegador puede hacerse legible por un robot. Por lo que incluso revolver la dirección de correo electrónico de alguna manera en el código HTML y luego usando una función de JavaScript para de-scramble de forma dinámica en la renderización de páginas, esto va a ser derrotado por un robot que también hace plena prestación del DOM.

Hasta hace poco tuve buen éxito con el método anterior, y no vi ningún tipo de spam. Sin embargo, recientemente he notado que las direcciones no parecen haber sido recogido. Así que sólo puedo asumir arrastreros de correo electrónico están haciendo ahora la representación DOM completo.

Para concluir - una imagen es probablemente el mejor (aunque incluso eso no es del 100%)

Aquí es una solución jQuery simple a este problema:

<script type="text/javascript">
$(document).ready(function() {
    str1="mailto:";
    str2="info";
    str3="@test.com";
    $("#email_a").attr("href", str1+str2+str3);

});
</script>

<a href="#" id="email_a"><img src="sample.png"/></a>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top