Como exibir um endereço de e-mail para os usuários, mas esconder de robô? Existe uma maneira simples de fazê-lo usando PHP, Javascript ou jQuery?

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

Pergunta

Existe um elegante e fácil way / simples de fazê-lo usando PHP, Javascript ou jQuery?

Foi útil?

Solução

Você pode usar o imagestring PHP () para criar uma imagem.

<?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);
?>

Outras dicas

Existem muitas maneiras de fazer isso. Nós tivemos sorte som ofuscar fonte via python / javascript. Outro favorito mais simples é a técnica unicode-bidi CSS:

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

Imprime:

foo@bar.com

Você pode querer olhar para reCAPTCHA Mailhide . Deve ser fácil de usar do PHP.

endereços de email nunca escrever como texto em páginas da Web, NUNCA!

e bots navegador certamente ter JS habilitado -_-

Obfuscation usando mais difíceis entidades possível HTML e urlencode, implementado em PHP: http://hcard.geekhood.net/encode/

Fonte: http://code.google.com/p/ hcardvalidator / fonte / browse / trunk / codificação / index.php

Outro uso abordagem que é:

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

É importante notar que ambas as técnicas dar aos usuários perfeitamente acessível link, clickable.

Você pode tentar mudar name@example.com para: "Nome de exemplo dot com".

No entanto, os robôs podem facilmente explicar isso.

Caso contrário, você pode exibir uma imagem dinâmica do endereço de email se você está realmente motivado.

Não é uma solução perfeita, mas o Enkoder ( http://hivelogic.com/enkoder ) é muito útil para isso. Ele usa Javascript para ofuscar o endereço.

Ok. Então, depois de um tempo, eu encontrei este artigo no blog sobre como fazer isso facilmente. http: // TechBlog .tilllate.com / 2008/07/20 / dez métodos-ofuscar-e-correio-endereços-comparado / E qual o impacto que ele faz sobre o recebimento de spam ..

Eu acho que isso poderia ser complementares às informações dadas acima .. Felicidades!

Será que este trabalho bem ??

Usando algo como isto

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

Isso não vai ficar como um link, mas ainda seria reconhecível pelo olho humano em uma página, e provavelmente cont ser analisado por um robô. não verifiquei, tu. Você provavelmente poderia inserir essa seqüência em um vazio e vinculá-lo a uma função que compõe o endereço ao analisar o conteúdo ..

Apenas um pensamento rápido ...

Isto é difícil de fazer. A menos que você use uma imagem, tudo o que é processado legível pelo seu navegador pode ser processado legível por um robô. Assim, mesmo lutando o e-mail de alguma forma em HTML e, em seguida, usando uma função javascript de-corrida dinamicamente na renderização de páginas, este será derrotado por um robô que também faz a renderização completa do DOM.

Até recentemente eu tive um bom sucesso com o método acima, e não vi nenhum spam. Recentemente, no entanto tenho notado que os endereços não parecem ter sido apanhada. Então eu só posso supor e-mail arrastões estão agora a fazer a renderização DOM completo.

Portanto, para concluir - uma imagem é provavelmente o melhor (embora mesmo isso não é 100%)

Aqui está uma solução jQuery simples para esse 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top